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

PROJECT (sourcing_v2), SPIDER (auto_selling_leboncoin.fr)

2025-12-05 12:40:37 [scrapy.utils.log] INFO: Scrapy 2.11.2 started (bot: SourcingV2)
2025-12-05 12:40:37 [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
2025-12-05 12:40:37 [auto_selling_leboncoin.fr] INFO: Starting auto_selling_leboncoin.fr spider
2025-12-05 12:40:37 [auto_selling_leboncoin.fr] INFO: _job: 30b40ba8d1c111f0b120928152083da5, SCRAPY_JOB: None
2025-12-05 12:40:37 [scrapy.addons] INFO: Enabled addons:
[]
2025-12-05 12:40:37 [asyncio] DEBUG: Using selector: EpollSelector
2025-12-05 12:40:37 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
2025-12-05 12:40:37 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
2025-12-05 12:40:37 [scrapy.extensions.telnet] INFO: Telnet Password: efcd7ad5dd405bf9
2025-12-05 12:40:37 [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']
2025-12-05 12:40:37 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'SourcingV2',
 'CLOSESPIDER_TIMEOUT': 3600,
 'CONCURRENT_REQUESTS': 5,
 'FEED_EXPORT_ENCODING': 'utf-8',
 'LOG_FILE': '/var/log/scrapyd/logs/sourcing_v2/auto_selling_leboncoin.fr/30b40ba8d1c111f0b120928152083da5.log',
 'LOG_FORMATTER': 'crawlers.log_formatter.SourcingLogFormatter',
 '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': ''}
2025-12-05 12:40:37 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
2025-12-05 12:40:37 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
2025-12-05 12:40:37 [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']
2025-12-05 12:40:37 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Setting up IdGenerationMiddleware for auto_selling
2025-12-05 12:40:37 [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']
2025-12-05 12:40:37 [scrapy.middleware] INFO: Enabled item pipelines:
['crawlers.pipelines.post_to_azurebus_auto_selling.AzureBusPipelineAutoSelling',
 'crawlers.pipelines.save_to_cdlq_db_auto_selling.SaveToCdlqDbAutoSelling']
2025-12-05 12:40:37 [scrapy.core.engine] INFO: Spider opened
2025-12-05 12:40:37 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_CLIENT_ID, AZURE_TENANT_ID
2025-12-05 12:40:37 [common.service_bus.service_bus_client_factory] INFO: ServiceBusClient initialized via DefaultAzureCredential for alx-production-bus.servicebus.windows.net
2025-12-05 12:40:37 [crawlers.pipelines.base_azure_bus_pipeline] INFO: [AzureBusPipeline] Connected to topic auto.sourcing-v2
2025-12-05 12:40:37 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2025-12-05 12:40:37 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6027
2025-12-05 12:40:37 [scrapy-playwright] INFO: Starting download handler
2025-12-05 12:40:37 [scrapy-playwright] INFO: Starting download handler
2025-12-05 12:40:42 [auto_selling_leboncoin.fr] INFO: Scraper started with URL: https://www.leboncoin.fr/boutique/104412/ab_motors.htm and multipost_profile_id: 3a4b313a-5a3b-4c79-9f86-0e65534afb48 and job_id: 30b40ba8d1c111f0b120928152083da5
2025-12-05 12:40:42 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2025-12-05 12:40:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.leboncoin.fr/boutique/104412/ab_motors.htm> (referer: https://www.leboncoin.fr/boutique/104412/ab_motors.htm) ['zyte-api']
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: Captured Zyte cookies: [{'name': '__Secure-Install', 'value': '79e125e6-aadf-4262-9000-d0af1960e801', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 253402300798, 'httpOnly': False, 'secure': True}, {'name': 'cnfdVisitorId', 'value': '459e4909-c49c-44a7-9e78-0a2d5efaf9d3', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1922618453, 'httpOnly': False, 'secure': True}, {'name': 'datadome', 'value': 'f~K7clx6j5xd5vNClysOhadv5AT335HoxJxjqji1skeQ0bnRwxr_CSM2wM3gJG5Jx~KdxPMfWdk4E_1lcLTXJ4_4CZwLY6sHXYqquITYOoJ3imqpTZqRNp9dRdmDj7HX', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1796474453, 'httpOnly': False, 'secure': True}]
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: Scrapy-formatted cookies: [{'name': '__Secure-Install', 'value': '79e125e6-aadf-4262-9000-d0af1960e801', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'cnfdVisitorId', 'value': '459e4909-c49c-44a7-9e78-0a2d5efaf9d3', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'datadome', 'value': 'f~K7clx6j5xd5vNClysOhadv5AT335HoxJxjqji1skeQ0bnRwxr_CSM2wM3gJG5Jx~KdxPMfWdk4E_1lcLTXJ4_4CZwLY6sHXYqquITYOoJ3imqpTZqRNp9dRdmDj7HX', 'domain': '.leboncoin.fr', 'path': '/'}]
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: Response headers after parse_dealer_home_page: {b'X-Amz-Cf-Pop': [b'CDG50-P2'], b'Date': [b'Fri, 05 Dec 2025 12:40:53 GMT'], b'Vary': [b'accept-encoding'], b'Strict-Transport-Security': [b'max-age=15768000'], b'Accept-Ch': [b'Sec-CH-UA,Sec-CH-UA-Mobile,Sec-CH-UA-Platform,Sec-CH-UA-Arch,Sec-CH-UA-Full-Version-List,Sec-CH-UA-Model,Sec-CH-Device-Memory'], b'Via': [b'1.1 7fbc1adfbf55c351343006ea853f668a.cloudfront.net (CloudFront)'], b'Set-Cookie': [b'datadome=f~K7clx6j5xd5vNClysOhadv5AT335HoxJxjqji1skeQ0bnRwxr_CSM2wM3gJG5Jx~KdxPMfWdk4E_1lcLTXJ4_4CZwLY6sHXYqquITYOoJ3imqpTZqRNp9dRdmDj7HX; Max-Age=31536000; Domain=.leboncoin.fr; Path=/; Secure; SameSite=Lax'], b'Content-Security-Policy': [b'frame-ancestors *.leboncoin.fr *.leboncoin.io *.leboncoin.ci; report-uri https://api.leboncoin.fr/api/csp-report/v1/report/;'], b'Referrer-Policy': [b'no-referrer-when-downgrade'], b'Etag': [b'W/"11d50adycfsb0de"'], b'Content-Security-Policy-Report-Only': [b'object-src *.leboncoin.fr *.leboncoin.io *.leboncoin.ci; frame-ancestors *.leboncoin.fr *.leboncoin.io *.leboncoin.ci; report-uri https://api.leboncoin.fr/api/csp-report/v1/report/;'], b'Content-Type': [b'text/html; charset=utf-8'], b'X-Cache': [b'Miss from cloudfront'], b'Cache-Control': [b'private, no-cache, no-store, max-age=0, must-revalidate'], b'X-Datadome': [b'protected'], b'X-Amz-Cf-Id': [b'59QhRd013TGTETU_VQAZ3bmDNHHhyb6q_2p4k9nPNnRqw62WlpvRKw==']}
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: defaultSearchOptions: {'limit': 10, 'filters': {'owner': {'user_id': 'aca2d4bd-cf28-4bfa-91a5-68c2ca6637d5'}, 'enums': {'ad_type': ['offer']}, 'keywords': {'text': ''}, 'category': {'id': '1'}}}
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: cookies: [{'name': '__Secure-Install', 'value': '79e125e6-aadf-4262-9000-d0af1960e801', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'cnfdVisitorId', 'value': '459e4909-c49c-44a7-9e78-0a2d5efaf9d3', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'datadome', 'value': 'f~K7clx6j5xd5vNClysOhadv5AT335HoxJxjqji1skeQ0bnRwxr_CSM2wM3gJG5Jx~KdxPMfWdk4E_1lcLTXJ4_4CZwLY6sHXYqquITYOoJ3imqpTZqRNp9dRdmDj7HX', 'domain': '.leboncoin.fr', 'path': '/'}]
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: Payload for get listings: {'limit': 200, 'filters': {'owner': {'user_id': 'aca2d4bd-cf28-4bfa-91a5-68c2ca6637d5'}, 'enums': {'ad_type': ['offer']}, 'keywords': {'text': ''}, 'category': {'id': '1'}}, 'offset': 0}
2025-12-05 12:40:54 [auto_selling_leboncoin.fr] INFO: Request: curl -X POST https://api.leboncoin.fr/finder/search --data-raw '{"filters": {"category": {"id": "1"}, "enums": {"ad_type": ["offer"]}, "keywords": {"text": ""}, "owner": {"user_id": "aca2d4bd-cf28-4bfa-91a5-68c2ca6637d5"}}, "limit": 200, "offset": 0}' -H 'Accept: */*' -H 'Accept-Language: en-GB,en-US;q=0.9,en;q=0.8' -H 'Content-Type: application/json' -H 'Origin: https://www.leboncoin.fr' --cookie 'name=__Secure-Install; name=cnfdVisitorId; name=datadome'
2025-12-05 12:40:54 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
2025-12-05 12:40:56 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://api.leboncoin.fr/finder/search> (referer: https://www.leboncoin.fr/boutique/104412/ab_motors.htm) ['zyte-api']
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found 30 listings on page 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3075223435
2025-12-05 12:40:57 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_CLIENT_ID, AZURE_TENANT_ID
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://login.microsoftonline.com:443 "POST /8ea908c1-4e85-4692-bc3f-3646b9b40891/oauth2/v2.0/token HTTP/1.1" 200 1965
2025-12-05 12:40:57 [azure.identity._credentials.chained] INFO: DefaultAzureCredential acquired a token from WorkloadIdentityCredential
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): alxsourcingstorageprod.table.core.windows.net:443
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273075223435%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3075223435: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3075223435
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3063385664
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063385664%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3063385664: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3063385664
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3063377877
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063377877%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3063377877: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3063377877
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3050370469
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273050370469%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3050370469: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3050370469
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3000850076
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273000850076%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3000850076: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3000850076
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3067916022
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273067916022%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3067916022: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3067916022
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3067790305
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273067790305%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3067790305: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3067790305
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3063942358
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063942358%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3063942358: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3063942358
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3063947250
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063947250%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 3063947250: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3063947250
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 2837810228
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272837810228%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 2837810228: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 2837810228
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 2837636338
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272837636338%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scrape type for 2837636338: 1
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Scraping new listing 2837636338
2025-12-05 12:40:57 [auto_selling_leboncoin.fr] INFO: Extracted item: {'auction_title': '',
 'c_o_2_emission_value': None,
 'category': None,
 'color': 'Gris',
 'currency': 'EUR',
 'description': '****** AB MOTORS ******\n'
                '\n'
                "Professionnel en Véhicules d'occasions Vous propose à la "
                'vente parmi sa sélection\n'
                "d'occasions révisées et garanties :\n"
                '\n'
                '****** TOYOTA YARIS 1.0 VVTI 72 CV ******\n'
                '\n'
                '-1ere m.e.c : 16/05/2018\n'
                '-Couleur : GRIS METALLISEE\n'
                '-Kilométrage : 48 000 KMS CERTIFIÉ ET GARANTIE\n'
                '-Cylindré : 998 cc\n'
                '-Puissance : 72 CH\n'
                '-Puissance fiscal : 4 CV\n'
                '\n'
                '****** VEHICULE DANS UN TRES BON ÉTAT !!! ******\n'
                '\n'
                '**** TRES BON MOTEUR / FAIBLE CONSOMMATION ******\n'
                '\n'
                '** IDEAL POUR CONVERSION ETHANOL E85 à 0.99 ct/L **\n'
                '\n'
                '=== OPTIONS ===\n'
                '\n'
                '- Vitres électriques\n'
                '- Direction assistée\n'
                '- Ouverture / Fermeture centralisé\n'
                '- CLIMATISATION\n'
                '- GPS\n'
                '- RETROVISEURS ELECTRIQUES\n'
                '- KIT MAIN LIBRE\n'
                '- RADAR AR\n'
                '- COMMANDE AU VOLANT\n'
                '- ORDINATEUR DE BORD\n'
                '- RADIO\n'
                '- BLUETOOTH\n'
                '- USB\n'
                '- 2 CLEFS\n'
                '- ECT ECT ........\n'
                '\n'
                '=== INFORMATIONS sur le VEHICULE ===\n'
                '\n'
                '-- AUCUN FRAIS À PREVOIR\n'
                '-- Intérieur et extérieur du véhicule comme NEUF !\n'
                '-- Mécanique en parfait Etat.\n'
                '-- Moteur fiable et robuste\n'
                '-- OCCASION à ne pas Rater ! À voir et à Essayer !\n'
                '\n'
                '------ Ce véhicule est vendu avec un contrôle technique '
                'récent ------\n'
                '\n'
                '============== SERVICE CARTE GRISE ===============\n'
                '\n'
                '- Nous Effectuons pour vous les démarches administrative\n'
                '\n'
                '(Cout Carte Grise et WW Provisoire en sus )\n'
                '\n'
                "- Se munir du PERMIS DE CONDUIRE + PIÈCE D'IDENTITÉ et\n"
                '\n'
                "d'un JUSTIFICATIF DE DOMICILE de moins de 3 Mois.\n"
                '\n'
                '======== PRIX: =========\n'
                '\n'
                '-- 10 990 € GARANTIE 3 MOIS ( MOTEUR/ BOITE )\n'
                '\n'
                '----- PRIX DE LA CARTE GRISE EN SUS -------\n'
                '\n'
                '-------- EXTENSION DE GARANTIE POSSIBLE ---------\n'
                '\n'
                '-- GARANTIE SUR TOUS LE VEHICULE A PARTIR DE 39€ / MOIS\n'
                '\n'
                'REPRISE POSSIBLE: A1 POLO C3 MINI\n'
                '\n'
                '_______________________________________________________\n'
                '\n'
                '***** AB MOTORS *****\n'
                '\n'
                'ACHAT/VENTE/REPRISE\n'
                '\n'
                'VEHICULE REVISES ET GARANTIES\n'
                '\n'
                'ROUTE NATIONALE D630 59125 TRITH SAINT LEGER\n'
                '\n'
                'EN FACE DE LA ZONE YELLOW PARC ELECTRO DEPOT /CARTER CASH',
 'doors_number': 5,
 'emission_standard': None,
 'engine': None,
 'engine_horse_power': 72,
 'expiration_date': None,
 'fuel_type': 'Essence',
 'is_damaged': False,
 'is_operable': True,
 'license_plate': None,
 'link_to_web_offer': 'https://www.leboncoin.fr/ad/voitures/2837636338',
 'listing': 'auction',
 'make': 'TOYOTA',
 'model': 'Yaris',
 'odometer': 48000,
 'odometer_reading_unit': 'km',
 'origin_country_code': 'FR',
 'original_photo_count': 0,
 'photo_urls': ['https://img.leboncoin.fr/api/v1/lbcpb1/images/09/2d/9f/092d9fc2c1ce68df6c3fb7528a545d640cfe5318.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/81/e2/a9/81e2a9b5c50ecc267e444f8786534bac68000cb8.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/60/16/9b60165962c8fe3d12c9d52ab7f0ab4652ef0166.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/44/10/1f/44101fd55252a8cadeb99d8fc5cfebaa3f8d7dde.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/5f/05/c3/5f05c30b5b8780cc841728748a4bd9bd6f37269e.jpg?rule=ad-large'],
 'price': 10990,
 'price_includes_vat': False,
 'registration_date': '2018-05-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'TOYOTA YARIS 1.0 VVTI 72 CV .avec 48 000 kms',
 'transmission': 'manual',
 'trim': None,
 'vin': None,
 'year': 2018}
2025-12-05 12:40:57 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 0450b2ef-b7b4-539e-8204-0e36f056f3d6 with identifier: 2837636338
2025-12-05 12:40:57 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 5 photos for item 0450b2ef-b7b4-539e-8204-0e36f056f3d6
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F09%252F2d%252F9f%252F092d9fc2c1ce68df6c3fb7528a545d640cfe5318.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/09/2d/9f/092d9fc2c1ce68df6c3fb7528a545d640cfe5318.jpg?rule=ad-large already downloaded
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F81%252Fe2%252Fa9%252F81e2a9b5c50ecc267e444f8786534bac68000cb8.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/81/e2/a9/81e2a9b5c50ecc267e444f8786534bac68000cb8.jpg?rule=ad-large already downloaded
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F9b%252F60%252F16%252F9b60165962c8fe3d12c9d52ab7f0ab4652ef0166.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/60/16/9b60165962c8fe3d12c9d52ab7f0ab4652ef0166.jpg?rule=ad-large already downloaded
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F44%252F10%252F1f%252F44101fd55252a8cadeb99d8fc5cfebaa3f8d7dde.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/44/10/1f/44101fd55252a8cadeb99d8fc5cfebaa3f8d7dde.jpg?rule=ad-large already downloaded
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F5f%252F05%252Fc3%252F5f05c30b5b8780cc841728748a4bd9bd6f37269e.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:57 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/5f/05/c3/5f05c30b5b8780cc841728748a4bd9bd6f37269e.jpg?rule=ad-large already downloaded
2025-12-05 12:40:57 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 0450b2ef-b7b4-539e-8204-0e36f056f3d6 with identifier 2837636338
2025-12-05 12:40:57 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: None -> <ConnectionState.START: 0>
2025-12-05 12:40:57 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.START: 0> -> <ConnectionState.HDR_SENT: 2>
2025-12-05 12:40:57 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.HDR_SENT: 2> -> <ConnectionState.HDR_SENT: 2>
2025-12-05 12:40:57 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.HDR_SENT: 2> -> <ConnectionState.OPEN_PIPE: 4>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.UNMAPPED: 0> -> <SessionState.BEGIN_SENT: 1>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2025-12-05 12:40:57 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPEN_PIPE: 4> -> <ConnectionState.OPEN_SENT: 7>
2025-12-05 12:40:57 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPEN_SENT: 7> -> <ConnectionState.OPENED: 9>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.BEGIN_SENT: 1> -> <SessionState.MAPPED: 3>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2025-12-05 12:40:57 [azure.servicebus._pyamqp.cbs] DEBUG: CBS completed opening with status: <ManagementOpenResult.OK: 1>
2025-12-05 12:40:57 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://login.microsoftonline.com:443 "POST /8ea908c1-4e85-4692-bc3f-3646b9b40891/oauth2/v2.0/token HTTP/1.1" 200 1947
2025-12-05 12:40:58 [azure.identity._credentials.chained] INFO: DefaultAzureCredential acquired a token from WorkloadIdentityCredential
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS update in progress. Token put time: 1764938458
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS update in progress. Token put time: 1764938458
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS Put token result (<ManagementExecuteOperationResult.OK: 0>), status code: 202, status_description: b'Accepted'.
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACHED: 0> -> <LinkState.ATTACH_SENT: 1>
2025-12-05 12:40:58 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACH_SENT: 1> -> <LinkState.ATTACHED: 3>
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 0450b2ef-b7b4-539e-8204-0e36f056f3d6
2025-12-05 12:40:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://api.leboncoin.fr/finder/search>
{'auction_title': '',
 'c_o_2_emission_value': None,
 'category': None,
 'color': 'Gris',
 'currency': 'EUR',
 'description': '****** AB MOTORS ******\n'
                '\n'
                "Professionnel en Véhicules d'occasions Vous propose à la "
                'vente parmi sa sélection\n'
                "d'occasions révisées et garanties :\n"
                '\n'
                '****** TOYOTA YARIS 1.0 VVTI 72 CV ******\n'
                '\n'
                '-1ere m.e.c : 16/05/2018\n'
                '-Couleur : GRIS METALLISEE\n'
                '-Kilométrage : 48 000 KMS CERTIFIÉ ET GARANTIE\n'
                '-Cylindré : 998 cc\n'
                '-Puissance : 72 CH\n'
                '-Puissance fiscal : 4 CV\n'
                '\n'
                '****** VEHICULE DANS UN TRES BON ÉTAT !!! ******\n'
                '\n'
                '**** TRES BON MOTEUR / FAIBLE CONSOMMATION ******\n'
                '\n'
                '** IDEAL POUR CONVERSION ETHANOL E85 à 0.99 ct/L **\n'
                '\n'
                '=== OPTIONS ===\n'
                '\n'
                '- Vitres électriques\n'
                '- Direction assistée\n'
                '- Ouverture / Fermeture centralisé\n'
                '- CLIMATISATION\n'
                '- GPS\n'
                '- RETROVISEURS ELECTRIQUES\n'
                '- KIT MAIN LIBRE\n'
                '- RADAR AR\n'
                '- COMMANDE AU VOLANT\n'
                '- ORDINATEUR DE BORD\n'
                '- RADIO\n'
                '- BLUETOOTH\n'
                '- USB\n'
                '- 2 CLEFS\n'
                '- ECT ECT ........\n'
                '\n'
                '=== INFORMATIONS sur le VEHICULE ===\n'
                '\n'
                '-- AUCUN FRAIS À PREVOIR\n'
                '-- Intérieur et extérieur du véhicule comme NEUF !\n'
                '-- Mécanique en parfait Etat.\n'
                '-- Moteur fiable et robuste\n'
                '-- OCCASION à ne pas Rater ! À voir et à Essayer !\n'
                '\n'
                '------ Ce véhicule est vendu avec un contrôle technique '
                'récent ------\n'
                '\n'
                '============== SERVICE CARTE GRISE ===============\n'
                '\n'
                '- Nous Effectuons pour vous les démarches administrative\n'
                '\n'
                '(Cout Carte Grise et WW Provisoire en sus )\n'
                '\n'
                "- Se munir du PERMIS DE CONDUIRE + PIÈCE D'IDENTITÉ et\n"
                '\n'
                "d'un JUSTIFICATIF DE DOMICILE de moins de 3 Mois.\n"
                '\n'
                '======== PRIX: =========\n'
                '\n'
                '-- 10 990 € GARANTIE 3 MOIS ( MOTEUR/ BOITE )\n'
                '\n'
                '----- PRIX DE LA CARTE GRISE EN SUS -------\n'
                '\n'
                '-------- EXTENSION DE GARANTIE POSSIBLE ---------\n'
                '\n'
                '-- GARANTIE SUR TOUS LE VEHICULE A PARTIR DE 39€ / MOIS\n'
                '\n'
                'REPRISE POSSIBLE: A1 POLO C3 MINI\n'
                '\n'
                '_______________________________________________________\n'
                '\n'
                '***** AB MOTORS *****\n'
                '\n'
                'ACHAT/VENTE/REPRISE\n'
                '\n'
                'VEHICULE REVISES ET GARANTIES\n'
                '\n'
                'ROUTE NATIONALE D630 59125 TRITH SAINT LEGER\n'
                '\n'
                'EN FACE DE LA ZONE YELLOW PARC ELECTRO DEPOT /CARTER CASH',
 'doors_number': 5,
 'emission_standard': None,
 'engine': None,
 'engine_horse_power': 72,
 'expiration_date': None,
 'fuel_type': 'Essence',
 'id': '0450b2ef-b7b4-539e-8204-0e36f056f3d6',
 'is_damaged': False,
 'is_operable': True,
 'license_plate': None,
 'link_to_web_offer': 'https://www.leboncoin.fr/ad/voitures/2837636338',
 'listing': 'auction',
 'make': 'TOYOTA',
 'model': 'Yaris',
 'odometer': 48000,
 'odometer_reading_unit': 'km',
 'origin_country_code': 'FR',
 'original_photo_count': 5,
 'photo_urls': ['https://img.leboncoin.fr/api/v1/lbcpb1/images/09/2d/9f/092d9fc2c1ce68df6c3fb7528a545d640cfe5318.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/81/e2/a9/81e2a9b5c50ecc267e444f8786534bac68000cb8.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/60/16/9b60165962c8fe3d12c9d52ab7f0ab4652ef0166.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/44/10/1f/44101fd55252a8cadeb99d8fc5cfebaa3f8d7dde.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/5f/05/c3/5f05c30b5b8780cc841728748a4bd9bd6f37269e.jpg?rule=ad-large'],
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9452ae5e-4877-553a-a73e-0d8ba142c5a3/9452ae5e-4877-553a-a73e-0d8ba142c5a3_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 201914,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/09/2d/9f/092d9fc2c1ce68df6c3fb7528a545d640cfe5318.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9452ae5e-4877-553a-a73e-0d8ba142c5a3/9452ae5e-4877-553a-a73e-0d8ba142c5a3_image_1.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 209026,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/81/e2/a9/81e2a9b5c50ecc267e444f8786534bac68000cb8.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9452ae5e-4877-553a-a73e-0d8ba142c5a3/9452ae5e-4877-553a-a73e-0d8ba142c5a3_image_2.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 160714,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/60/16/9b60165962c8fe3d12c9d52ab7f0ab4652ef0166.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9452ae5e-4877-553a-a73e-0d8ba142c5a3/9452ae5e-4877-553a-a73e-0d8ba142c5a3_image_3.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 151842,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/44/10/1f/44101fd55252a8cadeb99d8fc5cfebaa3f8d7dde.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9452ae5e-4877-553a-a73e-0d8ba142c5a3/9452ae5e-4877-553a-a73e-0d8ba142c5a3_image_4.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 152660,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/5f/05/c3/5f05c30b5b8780cc841728748a4bd9bd6f37269e.jpg?rule=ad-large',
             'Width': 1067}],
 'price': 10990,
 'price_includes_vat': False,
 'registration_date': '2018-05-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'TOYOTA YARIS 1.0 VVTI 72 CV .avec 48 000 kms',
 'transmission': 'manual',
 'trim': None,
 'vin': None,
 'year': 2018}
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272837636338%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Saving data for 2837636338: {'created_time': 1764938458.314783, 'last_price_update_time': 1764938458.314791}
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='2837636338') HTTP/1.1" 204 0
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 2839044461
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272839044461%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 2839044461: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 2839044461
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 2838402100
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272838402100%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 2838402100: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 2838402100
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3058798269
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273058798269%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3058798269: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3058798269
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 2947623324
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272947623324%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 2947623324: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 2947623324
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: {'auction_title': '',
 'c_o_2_emission_value': None,
 'category': None,
 'color': 'Gris',
 'currency': 'EUR',
 'description': '***** AB MOTORS ******\n'
                '\n'
                "Professionnel en Véhicules d'occasions Vous propose à la "
                'vente parmi sa sélection\n'
                "d'occasions révisées et garanties :\n"
                '\n'
                '****** DS DS4 1.6 HDI 120CV 5 PORTES ******\n'
                '\n'
                '-1ere m.e.c : 25 / 05 / 2016\n'
                '-Couleur : GRIS METALISEE\n'
                '-Kilométrage : 162 000 KMS CERTIFIÉ ET GARANTIE\n'
                '-Cylindré : 1560 cc\n'
                '-Puissance : 120 ch\n'
                '-Puissance fiscal : 6 cv\n'
                '\n'
                '***** VEHICULE DANS UN ÉTAT PROPRE *****\n'
                '\n'
                '===OPTIONS===\n'
                '\n'
                '- Vitres électriques\n'
                '- Direction assistée\n'
                '- Ouverture / Fermeture centralisé\n'
                '- LED DE JOUR\n'
                '- RETROVISEURS ELECTRIQUES\n'
                '- CLIMATISATION AUTO\n'
                '- GPS NAVIGATION\n'
                '- FEUX AUTO\n'
                '- DETECTEUR DE PLUIE\n'
                '- REGULATEUR DE VITESSE\n'
                '- LIMITEUR DE VITESSE\n'
                '- COMMANDE AU VOLANT\n'
                '- ORDINATEUR DE BORD\n'
                '- RADIO CD MP3\n'
                '- BLUETOOTH\n'
                '- USB / AUX\n'
                '- JANTES ALU\n'
                '- ECT ECT ........\n'
                '\n'
                '=== INFORMATIONS sur le VEHICULE ===\n'
                '\n'
                '-- AUCUN FRAIS À PREVOIR\n'
                '-- Intérieur et extérieur du véhicule comme NEUF !\n'
                '-- Mécanique en parfait Etat.\n'
                '-- Moteur fiable et robuste\n'
                '-- OCCASION à ne pas Rater ! À voir et à Essayer !\n'
                '\n'
                '------ Ce véhicule est vendu avec un contrôle technique '
                'récent ------\n'
                '\n'
                '============== SERVICE CARTE GRISE ===============\n'
                '- Nous Effectuons pour vous les démarches administrative\n'
                '(Cout Carte Grise et WW Provisoire en sus )\n'
                '\n'
                "- Se munir du PERMIS DE CONDUIRE + PIÈCE D'IDENTITÉ et\n"
                "d'un JUSTIFICATIF DE DOMICILE de moins de 3 Mois.\n"
                '\n'
                '======== PRIX: =========\n'
                '\n'
                '-- 8 990 € GARANTIE 3 MOIS ( MOTEUR/ BOITE )\n'
                '\n'
                '----- PRIX DE LA CARTE GRISE EN SUS -------\n'
                '\n'
                'REPRISE POSSIBLE: polo c3 A1 CLIO\n'
                '_______________________________________________________\n'
                '\n'
                '***** AB MOTORS *****\n'
                'ACHAT/VENTE/REPRISE\n'
                'VEHICULE REVISES ET GARANTIES\n'
                '\n'
                'ROUTE NATIONALE D630 59125 TRITH SAINT LEGER\n'
                '\n'
                'EN FACE DE LA ZONE YELLOW PARC ELECTRO DEPOT /CARTER CASH\n'
                '______________________________________________________________________',
 'doors_number': 5,
 'emission_standard': None,
 'engine': None,
 'engine_horse_power': 120,
 'expiration_date': None,
 'fuel_type': 'Diesel',
 'is_damaged': False,
 'is_operable': True,
 'license_plate': None,
 'link_to_web_offer': 'https://www.leboncoin.fr/ad/voitures/2947623324',
 'listing': 'auction',
 'make': 'DS',
 'model': 'DS 4',
 'odometer': 162000,
 'odometer_reading_unit': 'km',
 'origin_country_code': 'FR',
 'original_photo_count': 0,
 'photo_urls': ['https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/f3/d6/6ff3d6fe0cfbdcebe0fd034c87f5a0fe5eb06e38.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/1a/9c/ad/1a9cad12dc3277a054b3c68b0e50a0657c2944ac.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/2c/47/6f/2c476f597a96828e1833f2fdac98476e2b95f35a.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/49/3e/51/493e513d08a31ec5e31dc8513e12cfde4859aa6a.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/6c/9f/c7/6c9fc73067808543ed397eca8f4bfb0237109811.jpg?rule=ad-large'],
 'price': 8990,
 'price_includes_vat': False,
 'registration_date': '2016-05-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Ds ds4 1.6 hdi 120 cv so chic .du 05/2016 avec 162 000 kms',
 'transmission': 'manual',
 'trim': None,
 'vin': None,
 'year': 2016}
2025-12-05 12:40:58 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 3a1e9f3f-6ce3-5905-a17d-f65033fb94b0 with identifier: 2947623324
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 5 photos for item 3a1e9f3f-6ce3-5905-a17d-f65033fb94b0
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F6f%252Ff3%252Fd6%252F6ff3d6fe0cfbdcebe0fd034c87f5a0fe5eb06e38.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/f3/d6/6ff3d6fe0cfbdcebe0fd034c87f5a0fe5eb06e38.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F1a%252F9c%252Fad%252F1a9cad12dc3277a054b3c68b0e50a0657c2944ac.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/1a/9c/ad/1a9cad12dc3277a054b3c68b0e50a0657c2944ac.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F2c%252F47%252F6f%252F2c476f597a96828e1833f2fdac98476e2b95f35a.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/2c/47/6f/2c476f597a96828e1833f2fdac98476e2b95f35a.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F49%252F3e%252F51%252F493e513d08a31ec5e31dc8513e12cfde4859aa6a.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/49/3e/51/493e513d08a31ec5e31dc8513e12cfde4859aa6a.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F6c%252F9f%252Fc7%252F6c9fc73067808543ed397eca8f4bfb0237109811.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/6c/9f/c7/6c9fc73067808543ed397eca8f4bfb0237109811.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 3a1e9f3f-6ce3-5905-a17d-f65033fb94b0 with identifier 2947623324
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:58 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 3a1e9f3f-6ce3-5905-a17d-f65033fb94b0
2025-12-05 12:40:58 [scrapy.core.scraper] DEBUG: Scraped from <200 https://api.leboncoin.fr/finder/search>
{'auction_title': '',
 'c_o_2_emission_value': None,
 'category': None,
 'color': 'Gris',
 'currency': 'EUR',
 'description': '***** AB MOTORS ******\n'
                '\n'
                "Professionnel en Véhicules d'occasions Vous propose à la "
                'vente parmi sa sélection\n'
                "d'occasions révisées et garanties :\n"
                '\n'
                '****** DS DS4 1.6 HDI 120CV 5 PORTES ******\n'
                '\n'
                '-1ere m.e.c : 25 / 05 / 2016\n'
                '-Couleur : GRIS METALISEE\n'
                '-Kilométrage : 162 000 KMS CERTIFIÉ ET GARANTIE\n'
                '-Cylindré : 1560 cc\n'
                '-Puissance : 120 ch\n'
                '-Puissance fiscal : 6 cv\n'
                '\n'
                '***** VEHICULE DANS UN ÉTAT PROPRE *****\n'
                '\n'
                '===OPTIONS===\n'
                '\n'
                '- Vitres électriques\n'
                '- Direction assistée\n'
                '- Ouverture / Fermeture centralisé\n'
                '- LED DE JOUR\n'
                '- RETROVISEURS ELECTRIQUES\n'
                '- CLIMATISATION AUTO\n'
                '- GPS NAVIGATION\n'
                '- FEUX AUTO\n'
                '- DETECTEUR DE PLUIE\n'
                '- REGULATEUR DE VITESSE\n'
                '- LIMITEUR DE VITESSE\n'
                '- COMMANDE AU VOLANT\n'
                '- ORDINATEUR DE BORD\n'
                '- RADIO CD MP3\n'
                '- BLUETOOTH\n'
                '- USB / AUX\n'
                '- JANTES ALU\n'
                '- ECT ECT ........\n'
                '\n'
                '=== INFORMATIONS sur le VEHICULE ===\n'
                '\n'
                '-- AUCUN FRAIS À PREVOIR\n'
                '-- Intérieur et extérieur du véhicule comme NEUF !\n'
                '-- Mécanique en parfait Etat.\n'
                '-- Moteur fiable et robuste\n'
                '-- OCCASION à ne pas Rater ! À voir et à Essayer !\n'
                '\n'
                '------ Ce véhicule est vendu avec un contrôle technique '
                'récent ------\n'
                '\n'
                '============== SERVICE CARTE GRISE ===============\n'
                '- Nous Effectuons pour vous les démarches administrative\n'
                '(Cout Carte Grise et WW Provisoire en sus )\n'
                '\n'
                "- Se munir du PERMIS DE CONDUIRE + PIÈCE D'IDENTITÉ et\n"
                "d'un JUSTIFICATIF DE DOMICILE de moins de 3 Mois.\n"
                '\n'
                '======== PRIX: =========\n'
                '\n'
                '-- 8 990 € GARANTIE 3 MOIS ( MOTEUR/ BOITE )\n'
                '\n'
                '----- PRIX DE LA CARTE GRISE EN SUS -------\n'
                '\n'
                'REPRISE POSSIBLE: polo c3 A1 CLIO\n'
                '_______________________________________________________\n'
                '\n'
                '***** AB MOTORS *****\n'
                'ACHAT/VENTE/REPRISE\n'
                'VEHICULE REVISES ET GARANTIES\n'
                '\n'
                'ROUTE NATIONALE D630 59125 TRITH SAINT LEGER\n'
                '\n'
                'EN FACE DE LA ZONE YELLOW PARC ELECTRO DEPOT /CARTER CASH\n'
                '______________________________________________________________________',
 'doors_number': 5,
 'emission_standard': None,
 'engine': None,
 'engine_horse_power': 120,
 'expiration_date': None,
 'fuel_type': 'Diesel',
 'id': '3a1e9f3f-6ce3-5905-a17d-f65033fb94b0',
 'is_damaged': False,
 'is_operable': True,
 'license_plate': None,
 'link_to_web_offer': 'https://www.leboncoin.fr/ad/voitures/2947623324',
 'listing': 'auction',
 'make': 'DS',
 'model': 'DS 4',
 'odometer': 162000,
 'odometer_reading_unit': 'km',
 'origin_country_code': 'FR',
 'original_photo_count': 5,
 'photo_urls': ['https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/f3/d6/6ff3d6fe0cfbdcebe0fd034c87f5a0fe5eb06e38.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/1a/9c/ad/1a9cad12dc3277a054b3c68b0e50a0657c2944ac.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/2c/47/6f/2c476f597a96828e1833f2fdac98476e2b95f35a.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/49/3e/51/493e513d08a31ec5e31dc8513e12cfde4859aa6a.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/6c/9f/c7/6c9fc73067808543ed397eca8f4bfb0237109811.jpg?rule=ad-large'],
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9a8baed7-1a61-5594-8d98-1bd3a00f458c/9a8baed7-1a61-5594-8d98-1bd3a00f458c_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 181141,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/f3/d6/6ff3d6fe0cfbdcebe0fd034c87f5a0fe5eb06e38.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9a8baed7-1a61-5594-8d98-1bd3a00f458c/9a8baed7-1a61-5594-8d98-1bd3a00f458c_image_1.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 194558,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/1a/9c/ad/1a9cad12dc3277a054b3c68b0e50a0657c2944ac.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9a8baed7-1a61-5594-8d98-1bd3a00f458c/9a8baed7-1a61-5594-8d98-1bd3a00f458c_image_2.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 163845,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/2c/47/6f/2c476f597a96828e1833f2fdac98476e2b95f35a.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9a8baed7-1a61-5594-8d98-1bd3a00f458c/9a8baed7-1a61-5594-8d98-1bd3a00f458c_image_3.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 153212,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/49/3e/51/493e513d08a31ec5e31dc8513e12cfde4859aa6a.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_9a8baed7-1a61-5594-8d98-1bd3a00f458c/9a8baed7-1a61-5594-8d98-1bd3a00f458c_image_4.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 156339,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/6c/9f/c7/6c9fc73067808543ed397eca8f4bfb0237109811.jpg?rule=ad-large',
             'Width': 1067}],
 'price': 8990,
 'price_includes_vat': False,
 'registration_date': '2016-05-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Ds ds4 1.6 hdi 120 cv so chic .du 05/2016 avec 162 000 kms',
 'transmission': 'manual',
 'trim': None,
 'vin': None,
 'year': 2016}
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272947623324%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Saving data for 2947623324: {'created_time': 1764938458.744336, 'last_price_update_time': 1764938458.744345}
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='2947623324') HTTP/1.1" 204 0
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3018113067
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273018113067%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3018113067: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3018113067
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 2873303502
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272873303502%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 2873303502: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 2873303502
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3083895631
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273083895631%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3083895631: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3083895631
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3083935362
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273083935362%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3083935362: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3083935362
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3083955726
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273083955726%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3083955726: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3083955726
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3085097513
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085097513%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3085097513: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3085097513
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3085116115
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085116115%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3085116115: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3085116115
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3085141736
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085141736%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3085141736: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3085141736
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3085194274
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085194274%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3085194274: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3085194274
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3017161101
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273017161101%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scrape type for 3017161101: 1
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3017161101
2025-12-05 12:40:58 [auto_selling_leboncoin.fr] INFO: Extracted item: {'auction_title': '',
 'c_o_2_emission_value': None,
 'category': None,
 'color': 'Gris',
 'currency': 'EUR',
 'description': '****** AB MOTORS ******\n'
                '\n'
                "Professionnel en Véhicules d'occasions Vous propose à la "
                'vente parmi sa sélection\n'
                "d'occasions révisées et garanties :\n"
                '\n'
                '****  VOLKSWAGEN TIGUAN 2.0 TDI 110 CV  ****\n'
                '\n'
                '-1ere m.e.c : 15 / 10 / 2013\n'
                '-Couleur : GRIS METALLISEE\n'
                '-Kilométrage : 106 000 KMS CERTIFIÉ ET GARANTIE\n'
                '-Cylindré : 1968 cc\n'
                '-Puissance : 110 CH\n'
                '-Puissance fiscal : 6 CV\n'
                '\n'
                '**** VEHICULE DANS UN TRES BON ETAT ****\n'
                '\n'
                '*** TRES BEAU TIGUAN DE 1 ER MAIN + CARNET  ***\n'
                '\n'
                '=== OPTIONS ===\n'
                '\n'
                '- 4 Vitres électriques\n'
                '- Direction assistée\n'
                '- Ouverture / Fermeture centralisée\n'
                '- SIEGE CUIR\n'
                '- SIEGE SEMI / ELEC\n'
                '- SIEGE CHAUFFANT\n'
                '- CLIMATISATION AUTO\n'
                '- TOIT PANORAMIQUE\n'
                '- TOIT OUVRANT\n'
                '- GPS NAVIGATION\n'
                '- RADAR AV + AR\n'
                '- RETROVISEURS ELECTRIQUES\n'
                '- DETECTEUR DE PLUIE\n'
                '- FEUX AUTO\n'
                '- LED DE JOUR\n'
                '- ORDINATEUR DE BORD\n'
                '- VOLANT MULTIFONCTION\n'
                '- RADIO CD MP3\n'
                '- BLUETOOTH\n'
                '- TEL MAIN LIBRE\n'
                '- USB / AUX\n'
                '- JANTES ALU \n'
                '- ECT ECT......\n'
                '\n'
                '=== INFORMATIONS sur le VEHICULE ===\n'
                '\n'
                '-- AUCUN FRAIS À PREVOIR\n'
                '-- Intérieur et extérieur du véhicule comme NEUF !\n'
                '-- Mécanique en parfait Etat.\n'
                '-- Moteur fiable et robuste\n'
                '-- OCCASION à ne pas Rater ! À voir et à Essayer !\n'
                '\n'
                '------ Ce véhicule est vendu avec un contrôle technique '
                'récent ------\n'
                '\n'
                '============== SERVICE CARTE GRISE ===============\n'
                '\n'
                '- Nous Effectuons pour vous les démarches administrative\n'
                '\n'
                '(Cout Carte Grise et WW Provisoire en sus )\n'
                '\n'
                "- Se munir du PERMIS DE CONDUIRE + PIÈCE D'IDENTITÉ et\n"
                '\n'
                "d'un JUSTIFICATIF DE DOMICILE de moins de 3 Mois.\n"
                '\n'
                '======== PRIX: =========\n'
                '\n'
                '-- 13 990 € GARANTIE 3 MOIS ( MOTEUR/ BOITE )\n'
                '\n'
                '----- PRIX DE LA CARTE GRISE EN SUS -------\n'
                '\n'
                '----- PLUS DE PHOTOS SUR NOTRE SITE INTERNET -------\n'
                '\n'
                '-------- EXTENSION DE GARANTIE POSSIBLE ---------\n'
                '\n'
                'REPRISE POSSIBLE : A4 A6 BMW 320 330\n'
                '\n'
                '_______________________________________________________\n'
                '\n'
                '***** AB MOTORS *****\n'
                '\n'
                'ACHAT/VENTE/REPRISE\n'
                '\n'
                'VEHICULE REVISES ET GARANTIES\n'
                '\n'
                'ROUTE NATIONALE D630 59125 TRITH SAINT LEGER\n'
                '\n'
                'EN FACE DE LA ZONE YELLOW PARC ELECTRO DEPOT /CARTER CASH\n'
                '\n'
                '____________________________________________________________',
 'doors_number': 5,
 'emission_standard': None,
 'engine': None,
 'engine_horse_power': 110,
 'expiration_date': None,
 'fuel_type': 'Diesel',
 'is_damaged': False,
 'is_operable': True,
 'license_plate': None,
 'link_to_web_offer': 'https://www.leboncoin.fr/ad/voitures/3017161101',
 'listing': 'auction',
 'make': 'VOLKSWAGEN',
 'model': 'Tiguan',
 'odometer': 106000,
 'odometer_reading_unit': 'km',
 'origin_country_code': 'FR',
 'original_photo_count': 0,
 'photo_urls': ['https://img.leboncoin.fr/api/v1/lbcpb1/images/bd/dc/40/bddc409c72fa46fff28e77f7e720abc67198bf48.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/e2/64/3f/e2643f7025ef3a3c51cb12aea7298da5a6109872.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/57/21/75/5721758dc1980369c304528061f1487f9376114e.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/43/59/81/4359812b89a7ff2495e226cd6cec274a14caa786.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/18/a4/72/18a47238622c520e45b2104822efa73ce8b3468e.jpg?rule=ad-large'],
 'price': 13990,
 'price_includes_vat': False,
 'registration_date': '2013-10-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Volkswagen tiguan 2.0 tdi 110 cv .du 10 / 2013 avec 106 000 kms .1 '
          'er main + carnet',
 'transmission': 'manual',
 'trim': None,
 'vin': None,
 'year': 2013}
2025-12-05 12:40:58 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Generated ID for item: 31bd5a4c-844b-5aeb-9038-26b30f9ee1a2 with identifier: 3017161101
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Downloading 5 photos for item 31bd5a4c-844b-5aeb-9038-26b30f9ee1a2
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252Fbd%252Fdc%252F40%252Fbddc409c72fa46fff28e77f7e720abc67198bf48.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/bd/dc/40/bddc409c72fa46fff28e77f7e720abc67198bf48.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252Fe2%252F64%252F3f%252Fe2643f7025ef3a3c51cb12aea7298da5a6109872.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/e2/64/3f/e2643f7025ef3a3c51cb12aea7298da5a6109872.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F57%252F21%252F75%252F5721758dc1980369c304528061f1487f9376114e.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/57/21/75/5721758dc1980369c304528061f1487f9376114e.jpg?rule=ad-large already downloaded
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:58 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F43%252F59%252F81%252F4359812b89a7ff2495e226cd6cec274a14caa786.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:58 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/43/59/81/4359812b89a7ff2495e226cd6cec274a14caa786.jpg?rule=ad-large already downloaded
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /PhotoDownloadCache()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%27https%3A%252F%252Fimg.leboncoin.fr%252Fapi%252Fv1%252Flbcpb1%252Fimages%252F18%252Fa4%252F72%252F18a47238622c520e45b2104822efa73ce8b3468e.jpg%253Frule%3Dad-large%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [crawlers.middlewares.photo_download_middleware] INFO: Image https://img.leboncoin.fr/api/v1/lbcpb1/images/18/a4/72/18a47238622c520e45b2104822efa73ce8b3468e.jpg?rule=ad-large already downloaded
2025-12-05 12:40:59 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: Azure Bus Pipeline processing item: 31bd5a4c-844b-5aeb-9038-26b30f9ee1a2 with identifier 3017161101
2025-12-05 12:40:59 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:59 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:59 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process item CloudEvent for item 31bd5a4c-844b-5aeb-9038-26b30f9ee1a2
2025-12-05 12:40:59 [scrapy.core.scraper] DEBUG: Scraped from <200 https://api.leboncoin.fr/finder/search>
{'auction_title': '',
 'c_o_2_emission_value': None,
 'category': None,
 'color': 'Gris',
 'currency': 'EUR',
 'description': '****** AB MOTORS ******\n'
                '\n'
                "Professionnel en Véhicules d'occasions Vous propose à la "
                'vente parmi sa sélection\n'
                "d'occasions révisées et garanties :\n"
                '\n'
                '****  VOLKSWAGEN TIGUAN 2.0 TDI 110 CV  ****\n'
                '\n'
                '-1ere m.e.c : 15 / 10 / 2013\n'
                '-Couleur : GRIS METALLISEE\n'
                '-Kilométrage : 106 000 KMS CERTIFIÉ ET GARANTIE\n'
                '-Cylindré : 1968 cc\n'
                '-Puissance : 110 CH\n'
                '-Puissance fiscal : 6 CV\n'
                '\n'
                '**** VEHICULE DANS UN TRES BON ETAT ****\n'
                '\n'
                '*** TRES BEAU TIGUAN DE 1 ER MAIN + CARNET  ***\n'
                '\n'
                '=== OPTIONS ===\n'
                '\n'
                '- 4 Vitres électriques\n'
                '- Direction assistée\n'
                '- Ouverture / Fermeture centralisée\n'
                '- SIEGE CUIR\n'
                '- SIEGE SEMI / ELEC\n'
                '- SIEGE CHAUFFANT\n'
                '- CLIMATISATION AUTO\n'
                '- TOIT PANORAMIQUE\n'
                '- TOIT OUVRANT\n'
                '- GPS NAVIGATION\n'
                '- RADAR AV + AR\n'
                '- RETROVISEURS ELECTRIQUES\n'
                '- DETECTEUR DE PLUIE\n'
                '- FEUX AUTO\n'
                '- LED DE JOUR\n'
                '- ORDINATEUR DE BORD\n'
                '- VOLANT MULTIFONCTION\n'
                '- RADIO CD MP3\n'
                '- BLUETOOTH\n'
                '- TEL MAIN LIBRE\n'
                '- USB / AUX\n'
                '- JANTES ALU \n'
                '- ECT ECT......\n'
                '\n'
                '=== INFORMATIONS sur le VEHICULE ===\n'
                '\n'
                '-- AUCUN FRAIS À PREVOIR\n'
                '-- Intérieur et extérieur du véhicule comme NEUF !\n'
                '-- Mécanique en parfait Etat.\n'
                '-- Moteur fiable et robuste\n'
                '-- OCCASION à ne pas Rater ! À voir et à Essayer !\n'
                '\n'
                '------ Ce véhicule est vendu avec un contrôle technique '
                'récent ------\n'
                '\n'
                '============== SERVICE CARTE GRISE ===============\n'
                '\n'
                '- Nous Effectuons pour vous les démarches administrative\n'
                '\n'
                '(Cout Carte Grise et WW Provisoire en sus )\n'
                '\n'
                "- Se munir du PERMIS DE CONDUIRE + PIÈCE D'IDENTITÉ et\n"
                '\n'
                "d'un JUSTIFICATIF DE DOMICILE de moins de 3 Mois.\n"
                '\n'
                '======== PRIX: =========\n'
                '\n'
                '-- 13 990 € GARANTIE 3 MOIS ( MOTEUR/ BOITE )\n'
                '\n'
                '----- PRIX DE LA CARTE GRISE EN SUS -------\n'
                '\n'
                '----- PLUS DE PHOTOS SUR NOTRE SITE INTERNET -------\n'
                '\n'
                '-------- EXTENSION DE GARANTIE POSSIBLE ---------\n'
                '\n'
                'REPRISE POSSIBLE : A4 A6 BMW 320 330\n'
                '\n'
                '_______________________________________________________\n'
                '\n'
                '***** AB MOTORS *****\n'
                '\n'
                'ACHAT/VENTE/REPRISE\n'
                '\n'
                'VEHICULE REVISES ET GARANTIES\n'
                '\n'
                'ROUTE NATIONALE D630 59125 TRITH SAINT LEGER\n'
                '\n'
                'EN FACE DE LA ZONE YELLOW PARC ELECTRO DEPOT /CARTER CASH\n'
                '\n'
                '____________________________________________________________',
 'doors_number': 5,
 'emission_standard': None,
 'engine': None,
 'engine_horse_power': 110,
 'expiration_date': None,
 'fuel_type': 'Diesel',
 'id': '31bd5a4c-844b-5aeb-9038-26b30f9ee1a2',
 'is_damaged': False,
 'is_operable': True,
 'license_plate': None,
 'link_to_web_offer': 'https://www.leboncoin.fr/ad/voitures/3017161101',
 'listing': 'auction',
 'make': 'VOLKSWAGEN',
 'model': 'Tiguan',
 'odometer': 106000,
 'odometer_reading_unit': 'km',
 'origin_country_code': 'FR',
 'original_photo_count': 5,
 'photo_urls': ['https://img.leboncoin.fr/api/v1/lbcpb1/images/bd/dc/40/bddc409c72fa46fff28e77f7e720abc67198bf48.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/e2/64/3f/e2643f7025ef3a3c51cb12aea7298da5a6109872.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/57/21/75/5721758dc1980369c304528061f1487f9376114e.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/43/59/81/4359812b89a7ff2495e226cd6cec274a14caa786.jpg?rule=ad-large',
                'https://img.leboncoin.fr/api/v1/lbcpb1/images/18/a4/72/18a47238622c520e45b2104822efa73ce8b3468e.jpg?rule=ad-large'],
 'photos': [{'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_99b36d9a-e06e-5258-aa15-3f1e1efb517d/99b36d9a-e06e-5258-aa15-3f1e1efb517d_image_0.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 179316,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/bd/dc/40/bddc409c72fa46fff28e77f7e720abc67198bf48.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_99b36d9a-e06e-5258-aa15-3f1e1efb517d/99b36d9a-e06e-5258-aa15-3f1e1efb517d_image_1.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 179647,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/e2/64/3f/e2643f7025ef3a3c51cb12aea7298da5a6109872.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_99b36d9a-e06e-5258-aa15-3f1e1efb517d/99b36d9a-e06e-5258-aa15-3f1e1efb517d_image_2.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 152882,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/57/21/75/5721758dc1980369c304528061f1487f9376114e.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_99b36d9a-e06e-5258-aa15-3f1e1efb517d/99b36d9a-e06e-5258-aa15-3f1e1efb517d_image_3.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 120387,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/43/59/81/4359812b89a7ff2495e226cd6cec274a14caa786.jpg?rule=ad-large',
             'Width': 1067},
            {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_99b36d9a-e06e-5258-aa15-3f1e1efb517d/99b36d9a-e06e-5258-aa15-3f1e1efb517d_image_4.jpg',
             'Extension': 'jpg',
             'FileSizeInBytes': 155792,
             'Height': 800,
             'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/18/a4/72/18a47238622c520e45b2104822efa73ce8b3468e.jpg?rule=ad-large',
             'Width': 1067}],
 'price': 13990,
 'price_includes_vat': False,
 'registration_date': '2013-10-01',
 'seats_number': 5,
 'seller_name': None,
 'title': 'Volkswagen tiguan 2.0 tdi 110 cv .du 10 / 2013 avec 106 000 kms .1 '
          'er main + carnet',
 'transmission': 'manual',
 'trim': None,
 'vin': None,
 'year': 2013}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273017161101%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 3017161101: {'created_time': 1764938459.041106, 'last_price_update_time': 1764938459.041117}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3017161101') HTTP/1.1" 204 0
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3050428763
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273050428763%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scrape type for 3050428763: 1
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3050428763
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3074653581
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273074653581%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scrape type for 3074653581: 1
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3074653581
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3039040944
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273039040944%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scrape type for 3039040944: 1
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3039040944
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3039055132
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273039055132%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scrape type for 3039055132: 1
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3039055132
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3039023035
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273039023035%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scrape type for 3039023035: 1
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3039023035
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field registration_date is not nullable
Traceback (most recent call last):
  File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 242, in _extract_listing_item
    item["registration_date"] = self._extract_registration_date(details_data)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
    raise ValueError(f"Field {key} is not nullable")
ValueError: Field registration_date is not nullable
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Extracted item: None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: No more listings found to scrape
2025-12-05 12:40:59 [scrapy.core.engine] INFO: Closing spider (finished)
2025-12-05 12:40:59 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close cursor: 'SaveToCdlqDbAutoSelling' object has no attribute 'cursor'
2025-12-05 12:40:59 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close connection: 'SaveToCdlqDbAutoSelling' object has no attribute 'conn'
2025-12-05 12:40:59 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:59 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
2025-12-05 12:40:59 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process scrape complete CloudEvent for item 30b40ba8d1c111f0b120928152083da5
2025-12-05 12:40:59 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.MAPPED: 3> -> <SessionState.END_SENT: 4>
2025-12-05 12:40:59 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPENED: 9> -> <ConnectionState.CLOSE_SENT: 11>
2025-12-05 12:40:59 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.CLOSE_SENT: 11> -> <ConnectionState.END: 13>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.END_SENT: 4> -> <SessionState.DISCARDING: 6>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2025-12-05 12:40:59 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
2025-12-05 12:40:59 [azure.servicebus._pyamqp._transport] DEBUG: Transport endpoint is already disconnected: OSError(107, 'Transport endpoint is not connected')
2025-12-05 12:40:59 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: [AzureBusPipeline] connection closed
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: auto_selling_leboncoin.fr Crawl ended with reason finished, scrape types: {<ScrapeType.NEW: 1>: 5, <ScrapeType.NEW_DUPLICATE_ID: 4>: 0, <ScrapeType.PRICE_UPDATE: 2>: 0, <ScrapeType.AUCTION_UPDATE: 3>: 0, <ScrapeType.SKIPPED: 0>: 0}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272837810228%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 2837810228: {'created_time': 1764938459.804789}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='2837810228') HTTP/1.1" 204 0
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273050370469%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 3050370469: {'created_time': 1764938459.845321}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3050370469') HTTP/1.1" 204 0
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273083955726%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 3083955726: {'created_time': 1764938459.87745}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3083955726') HTTP/1.1" 204 0
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085116115%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 3085116115: {'created_time': 1764938459.906283}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3085116115') HTTP/1.1" 204 0
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273039023035%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 3039023035: {'created_time': 1764938459.936598}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3039023035') HTTP/1.1" 204 0
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273083895631%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 3083895631: {'created_time': 1764938459.966013}
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3083895631') HTTP/1.1" 204 0
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:40:59 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272838402100%27 HTTP/1.1" 200 None
2025-12-05 12:40:59 [auto_selling_leboncoin.fr] INFO: Saving data for 2838402100: {'created_time': 1764938459.997725}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='2838402100') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273067916022%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3067916022: {'created_time': 1764938460.032883}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3067916022') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273074653581%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3074653581: {'created_time': 1764938460.073465}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3074653581') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085141736%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3085141736: {'created_time': 1764938460.114509}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3085141736') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273050428763%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3050428763: {'created_time': 1764938460.149882}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3050428763') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063377877%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3063377877: {'created_time': 1764938460.186956}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3063377877') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273058798269%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3058798269: {'created_time': 1764938460.221807}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3058798269') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273039040944%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3039040944: {'created_time': 1764938460.253563}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3039040944') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063385664%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3063385664: {'created_time': 1764938460.286828}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3063385664') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273000850076%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3000850076: {'created_time': 1764938460.318316}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3000850076') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085097513%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3085097513: {'created_time': 1764938460.349065}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3085097513') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063942358%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3063942358: {'created_time': 1764938460.379749}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3063942358') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273085194274%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3085194274: {'created_time': 1764938460.412908}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3085194274') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273083935362%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3083935362: {'created_time': 1764938460.44401}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3083935362') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273039055132%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3039055132: {'created_time': 1764938460.493343}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3039055132') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273063947250%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3063947250: {'created_time': 1764938460.523033}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3063947250') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273075223435%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3075223435: {'created_time': 1764938460.566306}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3075223435') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273018113067%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3018113067: {'created_time': 1764938460.599489}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3018113067') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272839044461%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 2839044461: {'created_time': 1764938460.629844}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='2839044461') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%272873303502%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 2873303502: {'created_time': 1764938460.661156}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='2873303502') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20RowKey%20eq%20%273067790305%27 HTTP/1.1" 200 None
2025-12-05 12:41:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3067790305: {'created_time': 1764938460.696522}
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3067790305') HTTP/1.1" 204 0
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
2025-12-05 12:41:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "GET /ScrapedListings()?$filter=PartitionKey%20eq%20%27auto_selling_leboncoin.fr%27%20and%20last_price_update_time%20lt%201763642460 HTTP/1.1" 200 None
2025-12-05 12:41:00 [scrapy.extensions.feedexport] INFO: Stored jsonlines feed (3 items) in: file:///var/lib/scrapyd/items/sourcing_v2/auto_selling_leboncoin.fr/30b40ba8d1c111f0b120928152083da5.jl
2025-12-05 12:41:00 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 733,
 'downloader/request_count': 2,
 'downloader/request_method_count/GET': 1,
 'downloader/request_method_count/POST': 1,
 'downloader/response_bytes': 756861,
 'downloader/response_count': 2,
 'downloader/response_status_count/200': 2,
 'elapsed_time_seconds': 23.309253,
 'feedexport/success_count/FileFeedStorage': 1,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2025, 12, 5, 12, 41, 0, 747857, tzinfo=datetime.timezone.utc),
 'item_scraped_count': 3,
 'log_count/DEBUG': 249,
 'log_count/ERROR': 27,
 'log_count/INFO': 240,
 'memusage/max': 126709760,
 'memusage/startup': 126709760,
 'request_depth_max': 1,
 'response_received_count': 2,
 'scheduler/dequeued': 2,
 'scheduler/dequeued/memory': 2,
 'scheduler/enqueued': 2,
 'scheduler/enqueued/memory': 2,
 'scrapy-zyte-api/429': 0,
 'scrapy-zyte-api/attempts': 2,
 'scrapy-zyte-api/error_ratio': 0.0,
 'scrapy-zyte-api/errors': 0,
 'scrapy-zyte-api/fatal_errors': 0,
 'scrapy-zyte-api/mean_connection_seconds': 6.874767886009067,
 'scrapy-zyte-api/mean_response_seconds': 7.156860771472566,
 'scrapy-zyte-api/processed': 2,
 'scrapy-zyte-api/request_args/customHttpRequestHeaders': 2,
 'scrapy-zyte-api/request_args/experimental.responseCookies': 1,
 'scrapy-zyte-api/request_args/httpRequestBody': 1,
 'scrapy-zyte-api/request_args/httpRequestMethod': 1,
 'scrapy-zyte-api/request_args/httpResponseBody': 2,
 'scrapy-zyte-api/request_args/httpResponseHeaders': 2,
 'scrapy-zyte-api/request_args/responseCookies': 1,
 'scrapy-zyte-api/request_args/url': 2,
 'scrapy-zyte-api/status_codes/200': 2,
 'scrapy-zyte-api/success': 2,
 'scrapy-zyte-api/success_ratio': 1.0,
 'scrapy-zyte-api/throttle_ratio': 0.0,
 'start_time': datetime.datetime(2025, 12, 5, 12, 40, 37, 438604, tzinfo=datetime.timezone.utc)}
2025-12-05 12:41:00 [scrapy.core.engine] INFO: Spider closed (finished)
2025-12-05 12:41:00 [asyncio] ERROR: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f79b5558a50>
2025-12-05 12:41:00 [asyncio] ERROR: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f79b5559110>

PROJECT (sourcing_v2), SPIDER (auto_selling_leboncoin.fr)