• LogParser v0.8.2, last updated at 2026-01-28 13:08:06, http://scrapyd-1:6800/logs/sourcing_v2/auto_selling_leboncoin.fr/267f214cfc3011f0a599c2c555c92d63.json

PROJECT (sourcing_v2), SPIDER (auto_selling_leboncoin.fr)

  • Log analysis
  • Log categorization
  • View log
  • Crawler.stats
  • projectsourcing_v2
    spiderauto_selling_leboncoin.fr
    job267f214cfc3011f0a599c2c555c92d63
    first_log_time2026-01-28 13:07:24
    latest_log_time2026-01-28 13:08:01
    runtime0:00:37
    crawled_pages 2
    scraped_items 18
    shutdown_reasonN/A
    finish_reasonfinished
    log_critical_count0
    log_error_count14
    log_warning_count0
    log_redirect_count0
    log_retry_count0
    log_ignore_count0
    latest_crawl
    latest_scrape
    latest_log
    current_time
    latest_itemN/A
    • WARNING+

    • error_logs
      last 10 of 14

      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field transmission is not nullable
      Traceback (most recent call last):
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 237, in _extract_listing_item
          item["transmission"] = self._extract_transmission(details_data)
          ~~~~^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
          raise ValueError(f"Field {key} is not nullable")
      ValueError: Field transmission is not nullable
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_make: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 306, in _extract_make
          else brand_attribute_details.get("value_label")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3126926812, "first_publication_date": "2026-01-13 04:09:10", "expiration_date": "2026-03-14 04:09:10", "index_date": "2026-01-13 04:09:10", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "TOUTES PIECES PEUGEOT 508 HYBRIDE 2.0 HDI 163ch", "body": "\u267b\ufe0f  A vendre des pi\u00e8ces d\u00e9tach\u00e9es : \u267b\ufe0f\n\n\ud83d\udc49***ATTENTION CERTAINES PI\u00c8CES SONT PEUT \u00caTRE D\u00c9J\u00c0 VENDUES*** \ud83d\udc48\n\nPOSSIBILITE DE MONTER SUR PLACE EN SUPPLEMENT\n\n\ud83d\udd38ANNEE : 2012\n\ud83d\udd38Type de motorisation : 2.0 Hdi Hybride\n\ud83d\udd38Type de Boite de vitesses : Auto ETG6\n\ud83d\udd38Couleur du v\u00e9hicule : Gris\n\ud83d\udd38Genre : vp \n\nCertaines pi\u00e8ces sont peut-\u00eatre d\u00e9j\u00e0 vendues, les photos ne peuvent pas \u00eatre r\u00e9actualis\u00e9es tous les jours. Merci pour votre compr\u00e9hension.\n\n\u267b\ufe0f\u00c9quipement : \u267b\ufe0f\n- Batterie\n- Autoradio\n- L\u00e8ve vitre\n- Moteur essuie-glace\n\nCarrosserie :\n- Porte\n- Pare boue\n- Aile \n- Capot\n- Ciel de toit\n- Coffre / hayon / malle/volet arri\u00e8re\n- Face avant\n- Pare choc (avant / arri\u00e8re)\n- R\u00e9troviseur\n- Trappe \u00e0 essence\nInt\u00e9rieur :\n- Airbag /volant\n- Boutons divers\n- Bloc ABS\n- Frein \u00e0 main\n- Ceinture\n- Commande chauffage / clim\n- Console centrale\n- Commande l\u00e8ve vitre\n- Commodo / com 2000\n- Compteur\n- Kit int\u00e9rieur\n- Levier de vitesse\n- Moto ventilateur\n- Neiman\n- Planche de bord\n- Poign\u00e9e\n- Pompe de d\u00e9verrouillage\n- Pompe de DA\n- Si\u00e8ge / banquette\n\nSignalisation\n- Autres feux\n- Clignotant\n- Feu arri\u00e8re\n- Phare\n- r\u00e9p\u00e9titeur d\u2019aile\nPneumatiques jantes :\n- Pneus\n- Jante alu / t\u00f4le\nPi\u00e8ces du moteur :\n- Moteur complet\n- Boite de vitesse\n- Buse ventilo / ventilo\n- Bobine\n- D\u00e9bitm\u00e8tre\n- Pompe de clim\n- Pompe de DA\n- Pompe \u00e0 essence\n- Radiateur\n- Alternateur\n- Compresseur de clim\n- D\u00e9marreur\nTrain roulant :\n- Colonne de direction\n- Amortisseur\n- Train arri\u00e8re\n- Arbre de transmission\n- Cardan\n- Cr\u00e9maill\u00e8re\n- Etrier\n- Pivot\n- Jantes alu\n- Pneumatiques\n- \u2060Reducteur\n- \u2060Machine Electrique\n- \u2060Alternateur Hybride\n- \u2060Pompe \u00e0 eau Hybride\n\nNous sommes ouvert du lundi au samedi de 10h \u00e0 19h sans interruption", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3126926812", "price": [50], "price_cents": 5000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "500000", "values": ["500000"], "value_label": "500000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_model: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 319, in _extract_model
          else model_attribute_details.get("value_label")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3126926812, "first_publication_date": "2026-01-13 04:09:10", "expiration_date": "2026-03-14 04:09:10", "index_date": "2026-01-13 04:09:10", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "TOUTES PIECES PEUGEOT 508 HYBRIDE 2.0 HDI 163ch", "body": "\u267b\ufe0f  A vendre des pi\u00e8ces d\u00e9tach\u00e9es : \u267b\ufe0f\n\n\ud83d\udc49***ATTENTION CERTAINES PI\u00c8CES SONT PEUT \u00caTRE D\u00c9J\u00c0 VENDUES*** \ud83d\udc48\n\nPOSSIBILITE DE MONTER SUR PLACE EN SUPPLEMENT\n\n\ud83d\udd38ANNEE : 2012\n\ud83d\udd38Type de motorisation : 2.0 Hdi Hybride\n\ud83d\udd38Type de Boite de vitesses : Auto ETG6\n\ud83d\udd38Couleur du v\u00e9hicule : Gris\n\ud83d\udd38Genre : vp \n\nCertaines pi\u00e8ces sont peut-\u00eatre d\u00e9j\u00e0 vendues, les photos ne peuvent pas \u00eatre r\u00e9actualis\u00e9es tous les jours. Merci pour votre compr\u00e9hension.\n\n\u267b\ufe0f\u00c9quipement : \u267b\ufe0f\n- Batterie\n- Autoradio\n- L\u00e8ve vitre\n- Moteur essuie-glace\n\nCarrosserie :\n- Porte\n- Pare boue\n- Aile \n- Capot\n- Ciel de toit\n- Coffre / hayon / malle/volet arri\u00e8re\n- Face avant\n- Pare choc (avant / arri\u00e8re)\n- R\u00e9troviseur\n- Trappe \u00e0 essence\nInt\u00e9rieur :\n- Airbag /volant\n- Boutons divers\n- Bloc ABS\n- Frein \u00e0 main\n- Ceinture\n- Commande chauffage / clim\n- Console centrale\n- Commande l\u00e8ve vitre\n- Commodo / com 2000\n- Compteur\n- Kit int\u00e9rieur\n- Levier de vitesse\n- Moto ventilateur\n- Neiman\n- Planche de bord\n- Poign\u00e9e\n- Pompe de d\u00e9verrouillage\n- Pompe de DA\n- Si\u00e8ge / banquette\n\nSignalisation\n- Autres feux\n- Clignotant\n- Feu arri\u00e8re\n- Phare\n- r\u00e9p\u00e9titeur d\u2019aile\nPneumatiques jantes :\n- Pneus\n- Jante alu / t\u00f4le\nPi\u00e8ces du moteur :\n- Moteur complet\n- Boite de vitesse\n- Buse ventilo / ventilo\n- Bobine\n- D\u00e9bitm\u00e8tre\n- Pompe de clim\n- Pompe de DA\n- Pompe \u00e0 essence\n- Radiateur\n- Alternateur\n- Compresseur de clim\n- D\u00e9marreur\nTrain roulant :\n- Colonne de direction\n- Amortisseur\n- Train arri\u00e8re\n- Arbre de transmission\n- Cardan\n- Cr\u00e9maill\u00e8re\n- Etrier\n- Pivot\n- Jantes alu\n- Pneumatiques\n- \u2060Reducteur\n- \u2060Machine Electrique\n- \u2060Alternateur Hybride\n- \u2060Pompe \u00e0 eau Hybride\n\nNous sommes ouvert du lundi au samedi de 10h \u00e0 19h sans interruption", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3126926812", "price": [50], "price_cents": 5000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "500000", "values": ["500000"], "value_label": "500000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_transmission: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 334, in _extract_transmission
          if attribute_details.get("value_label") == "Automatique"
             ^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3126926812, "first_publication_date": "2026-01-13 04:09:10", "expiration_date": "2026-03-14 04:09:10", "index_date": "2026-01-13 04:09:10", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "TOUTES PIECES PEUGEOT 508 HYBRIDE 2.0 HDI 163ch", "body": "\u267b\ufe0f  A vendre des pi\u00e8ces d\u00e9tach\u00e9es : \u267b\ufe0f\n\n\ud83d\udc49***ATTENTION CERTAINES PI\u00c8CES SONT PEUT \u00caTRE D\u00c9J\u00c0 VENDUES*** \ud83d\udc48\n\nPOSSIBILITE DE MONTER SUR PLACE EN SUPPLEMENT\n\n\ud83d\udd38ANNEE : 2012\n\ud83d\udd38Type de motorisation : 2.0 Hdi Hybride\n\ud83d\udd38Type de Boite de vitesses : Auto ETG6\n\ud83d\udd38Couleur du v\u00e9hicule : Gris\n\ud83d\udd38Genre : vp \n\nCertaines pi\u00e8ces sont peut-\u00eatre d\u00e9j\u00e0 vendues, les photos ne peuvent pas \u00eatre r\u00e9actualis\u00e9es tous les jours. Merci pour votre compr\u00e9hension.\n\n\u267b\ufe0f\u00c9quipement : \u267b\ufe0f\n- Batterie\n- Autoradio\n- L\u00e8ve vitre\n- Moteur essuie-glace\n\nCarrosserie :\n- Porte\n- Pare boue\n- Aile \n- Capot\n- Ciel de toit\n- Coffre / hayon / malle/volet arri\u00e8re\n- Face avant\n- Pare choc (avant / arri\u00e8re)\n- R\u00e9troviseur\n- Trappe \u00e0 essence\nInt\u00e9rieur :\n- Airbag /volant\n- Boutons divers\n- Bloc ABS\n- Frein \u00e0 main\n- Ceinture\n- Commande chauffage / clim\n- Console centrale\n- Commande l\u00e8ve vitre\n- Commodo / com 2000\n- Compteur\n- Kit int\u00e9rieur\n- Levier de vitesse\n- Moto ventilateur\n- Neiman\n- Planche de bord\n- Poign\u00e9e\n- Pompe de d\u00e9verrouillage\n- Pompe de DA\n- Si\u00e8ge / banquette\n\nSignalisation\n- Autres feux\n- Clignotant\n- Feu arri\u00e8re\n- Phare\n- r\u00e9p\u00e9titeur d\u2019aile\nPneumatiques jantes :\n- Pneus\n- Jante alu / t\u00f4le\nPi\u00e8ces du moteur :\n- Moteur complet\n- Boite de vitesse\n- Buse ventilo / ventilo\n- Bobine\n- D\u00e9bitm\u00e8tre\n- Pompe de clim\n- Pompe de DA\n- Pompe \u00e0 essence\n- Radiateur\n- Alternateur\n- Compresseur de clim\n- D\u00e9marreur\nTrain roulant :\n- Colonne de direction\n- Amortisseur\n- Train arri\u00e8re\n- Arbre de transmission\n- Cardan\n- Cr\u00e9maill\u00e8re\n- Etrier\n- Pivot\n- Jantes alu\n- Pneumatiques\n- \u2060Reducteur\n- \u2060Machine Electrique\n- \u2060Alternateur Hybride\n- \u2060Pompe \u00e0 eau Hybride\n\nNous sommes ouvert du lundi au samedi de 10h \u00e0 19h sans interruption", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3126926812", "price": [50], "price_cents": 5000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "500000", "values": ["500000"], "value_label": "500000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field transmission is not nullable
      Traceback (most recent call last):
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 237, in _extract_listing_item
          item["transmission"] = self._extract_transmission(details_data)
          ~~~~^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
          raise ValueError(f"Field {key} is not nullable")
      ValueError: Field transmission is not nullable
      2026-01-28 13:08:01 [asyncio] ERROR: Unclosed client session
      client_session: <aiohttp.client.ClientSession object at 0x7f83ef0edc90>
      2026-01-28 13:08:01 [asyncio] ERROR: Unclosed client session
      client_session: <aiohttp.client.ClientSession object at 0x7f83ef0ee510>

      INFO

      DEBUG

    • scrapy_version

      2.11.2
    • telnet_console

      127.0.0.1:6029
    • telnet_password

      e82692ac5ad460d8
    • latest_crawl

      2026-01-28 13:07:52 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://api.leboncoin.fr/finder/search> (referer: https://www.leboncoin.fr/boutique/120591/yemacab_automobiles.htm) ['zyte-api']
    • latest_scrape

      2026-01-28 13:08:00 [scrapy.core.scraper] DEBUG: Scraped from <200 https://api.leboncoin.fr/finder/search>
    • latest_stat

      2026-01-28 13:07:24 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
    • Head

      2026-01-28 13:07:24 [scrapy.utils.log] INFO: Scrapy 2.11.2 started (bot: SourcingV2)
      2026-01-28 13:07:24 [scrapy.utils.log] INFO: Versions: lxml 5.2.2.0, libxml2 2.12.6, cssselect 1.2.0, parsel 1.9.1, w3lib 2.1.2, Twisted 24.3.0, Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0], pyOpenSSL 24.1.0 (OpenSSL 3.2.1 30 Jan 2024), cryptography 42.0.7, Platform Linux-5.15.0-1098-azure-x86_64-with-glibc2.36
      2026-01-28 13:07:24 [auto_selling_leboncoin.fr] INFO: Starting auto_selling_leboncoin.fr spider
      2026-01-28 13:07:24 [auto_selling_leboncoin.fr] INFO: _job: 267f214cfc3011f0a599c2c555c92d63, SCRAPY_JOB: None
      2026-01-28 13:07:24 [scrapy.addons] INFO: Enabled addons:
      []
      2026-01-28 13:07:24 [asyncio] DEBUG: Using selector: EpollSelector
      2026-01-28 13:07:24 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor
      2026-01-28 13:07:24 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop
      2026-01-28 13:07:24 [scrapy.extensions.telnet] INFO: Telnet Password: e82692ac5ad460d8
      2026-01-28 13:07:24 [scrapy.middleware] INFO: Enabled extensions:
      ['scrapy.extensions.corestats.CoreStats',
       'scrapy.extensions.telnet.TelnetConsole',
       'scrapy.extensions.memusage.MemoryUsage',
       'scrapy.extensions.feedexport.FeedExporter',
       'scrapy.extensions.logstats.LogStats',
       'scrapy.extensions.closespider.CloseSpider']
      2026-01-28 13:07:24 [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/267f214cfc3011f0a599c2c555c92d63.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': ''}
      2026-01-28 13:07:24 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
      2026-01-28 13:07:24 [scrapy_zyte_api.handler] INFO: Using a Zyte API key starting with '5857011'
      2026-01-28 13:07:24 [scrapy.middleware] INFO: Enabled downloader middlewares:
      ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware',
       'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
       'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
       'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
       'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPIDownloaderMiddleware',
       'scrapy.downloadermiddlewares.retry.RetryMiddleware',
       'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
       'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
       'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
       'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
       'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
       'scrapy.downloadermiddlewares.stats.DownloaderStats']
      2026-01-28 13:07:24 [crawlers.auto_selling.middlewares.id_gen_middleware] INFO: Setting up IdGenerationMiddleware for auto_selling
      2026-01-28 13:07:24 [scrapy.middleware] INFO: Enabled spider middlewares:
      ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
       'scrapy_zyte_api.ScrapyZyteAPISpiderMiddleware',
       'scrapy.spidermiddlewares.referer.RefererMiddleware',
       'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
       'scrapy.spidermiddlewares.depth.DepthMiddleware',
       'crawlers.middlewares.photo_download_middleware.PhotoDownloadMiddleware',
       'crawlers.auto_selling.middlewares.id_gen_middleware.IdGenMiddleware']
      2026-01-28 13:07:24 [scrapy.middleware] INFO: Enabled item pipelines:
      ['crawlers.pipelines.post_to_azurebus_auto_selling.AzureBusPipelineAutoSelling',
       'crawlers.pipelines.save_to_cdlq_db_auto_selling.SaveToCdlqDbAutoSelling']
      2026-01-28 13:07:24 [scrapy.core.engine] INFO: Spider opened
      2026-01-28 13:07:24 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_TENANT_ID, AZURE_CLIENT_ID
      2026-01-28 13:07:24 [common.service_bus.service_bus_client_factory] INFO: ServiceBusClient initialized via DefaultAzureCredential for alx-production-bus.servicebus.windows.net
      2026-01-28 13:07:24 [crawlers.pipelines.base_azure_bus_pipeline] INFO: [AzureBusPipeline] Connected to topic auto.sourcing-v2
      2026-01-28 13:07:24 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
      2026-01-28 13:07:24 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6029
      2026-01-28 13:07:24 [scrapy-playwright] INFO: Starting download handler
      
      2026-01-28 13:07:24 [scrapy-playwright] INFO: Starting download handler
      2026-01-28 13:07:29 [auto_selling_leboncoin.fr] INFO: Scraper started with URL: https://www.leboncoin.fr/boutique/120591/yemacab_automobiles.htm and multipost_profile_id: c95c0d14-7bb0-4441-a4bc-642cbd4f3ce8 and job_id: 267f214cfc3011f0a599c2c555c92d63
      
      2026-01-28 13:07:29 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-01-28 13:07:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.leboncoin.fr/boutique/120591/yemacab_automobiles.htm> (referer: https://www.leboncoin.fr/boutique/120591/yemacab_automobiles.htm) ['zyte-api']
      2026-01-28 13:07:51 [auto_selling_leboncoin.fr] INFO: Captured Zyte cookies: [{'name': 'ry_ry-l3b0nco_realytics', 'value': 'eyJpZCI6InJ5XzEyNkNBRjRFLTJBMzgtNEVBMC04OTdCLUYzMjUyNkU1NUUyRiIsImNpZCI6bnVsbCwiZXhwIjoxODAxMTQxNjU3OTUxLCJjcyI6bnVsbH0%3D', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1801141657, 'httpOnly': False, 'secure': False}, {'name': '_pctx', 'value': '%7Bu%7DN4IgrgzgpgThIC4B2YA2qA05owMoBcBDfSREQpAeyRCwgEt8oBJAE0RXSwH18ykADAFsA5iIDM%2BAI4AfIQGsAngEZ6QgBZSQAXyA', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1803733655, 'httpOnly': False, 'secure': True}, {'name': 'ry_ry-l3b0nco_so_realytics', 'value': 'eyJpZCI6InJ5XzEyNkNBRjRFLTJBMzgtNEVBMC04OTdCLUYzMjUyNkU1NUUyRiIsImNpZCI6bnVsbCwib3JpZ2luIjp0cnVlLCJyZWYiOm51bGwsImNvbnQiOm51bGwsIm5zIjp0cnVlLCJzYyI6bnVsbCwic3AiOm51bGx9', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1769607467, 'httpOnly': False, 'secure': False}, {'name': '__Secure-Install', 'value': '197ec004-65b0-493b-a989-76b6fd742e7a', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1804165652, 'httpOnly': False, 'secure': True}, {'name': 'pa_privacy', 'value': '%22exempt%22', 'domain': 'www.leboncoin.fr', 'path': '/', 'expires': 1803733654, 'httpOnly': False, 'secure': True}, {'name': '_pcid', 'value': '%7B%22browserId%22%3A%22mky1iki1lzb83hun%22%2C%22_t%22%3A%22n0mgg3tp%7Cmky1imhp%22%7D', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1803733655, 'httpOnly': False, 'secure': True}, {'name': 'datadome', 'value': 'R4ycnnKtFkBOkhBz_lgMvMbhbLfxuBjGxReU79rbwTfGKF5jF~~JrBwL_mzaCsiMHudcA4n4BB9vXDUBm7J0936CAEnzDIV11qFtcMVQksIZI1yUx4QQP~LzDXqAhl6T', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1801141666, 'httpOnly': False, 'secure': True}, {'name': 'didomi_token', 'value': 'eyJ1c2VyX2lkIjoiMTljMDRiNzYtNGIwMi02OTk5LWI1M2UtOGNkMWViY2FhOWIxIiwiY3JlYXRlZCI6IjIwMjYtMDEtMjhUMTM6MDc6MzMuNjgwWiIsInVwZGF0ZWQiOiIyMDI2LTAxLTI4VDEzOjA3OjMzLjY4MFoiLCJ2ZXJzaW9uIjpudWxsfQ==', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1785413253, 'httpOnly': False, 'secure': False}, {'name': 'cnfdVisitorId', 'value': 'ba01ddb7-faaf-458f-ba9a-bc6596d57e1d', 'domain': '.leboncoin.fr', 'path': '/', 'expires': 1804165652, 'httpOnly': False, 'secure': True}]
      2026-01-28 13:07:51 [auto_selling_leboncoin.fr] INFO: Scrapy-formatted cookies: [{'name': 'ry_ry-l3b0nco_realytics', 'value': 'eyJpZCI6InJ5XzEyNkNBRjRFLTJBMzgtNEVBMC04OTdCLUYzMjUyNkU1NUUyRiIsImNpZCI6bnVsbCwiZXhwIjoxODAxMTQxNjU3OTUxLCJjcyI6bnVsbH0%3D', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': '_pctx', 'value': '%7Bu%7DN4IgrgzgpgThIC4B2YA2qA05owMoBcBDfSREQpAeyRCwgEt8oBJAE0RXSwH18ykADAFsA5iIDM%2BAI4AfIQGsAngEZ6QgBZSQAXyA', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'ry_ry-l3b0nco_so_realytics', 'value': 'eyJpZCI6InJ5XzEyNkNBRjRFLTJBMzgtNEVBMC04OTdCLUYzMjUyNkU1NUUyRiIsImNpZCI6bnVsbCwib3JpZ2luIjp0cnVlLCJyZWYiOm51bGwsImNvbnQiOm51bGwsIm5zIjp0cnVlLCJzYyI6bnVsbCwic3AiOm51bGx9', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': '__Secure-Install', 'value': '197ec004-65b0-493b-a989-76b6fd742e7a', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'pa_privacy', 'value': '%22exempt%22', 'domain': 'www.leboncoin.fr', 'path': '/'}, {'name': '_pcid', 'value': '%7B%22browserId%22%3A%22mky1iki1lzb83hun%22%2C%22_t%22%3A%22n0mgg3tp%7Cmky1imhp%22%7D', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'datadome', 'value': 'R4ycnnKtFkBOkhBz_lgMvMbhbLfxuBjGxReU79rbwTfGKF5jF~~JrBwL_mzaCsiMHudcA4n4BB9vXDUBm7J0936CAEnzDIV11qFtcMVQksIZI1yUx4QQP~LzDXqAhl6T', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'didomi_token', 'value': 'eyJ1c2VyX2lkIjoiMTljMDRiNzYtNGIwMi02OTk5LWI1M2UtOGNkMWViY2FhOWIxIiwiY3JlYXRlZCI6IjIwMjYtMDEtMjhUMTM6MDc6MzMuNjgwWiIsInVwZGF0ZWQiOiIyMDI2LTAxLTI4VDEzOjA3OjMzLjY4MFoiLCJ2ZXJzaW9uIjpudWxsfQ==', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'cnfdVisitorId', 'value': 'ba01ddb7-faaf-458f-ba9a-bc6596d57e1d', 'domain': '.leboncoin.fr', 'path': '/'}]
      2026-01-28 13:07:51 [auto_selling_leboncoin.fr] INFO: Response headers after parse_dealer_home_page: {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'Cache-Control': [b'private, no-cache, no-store, max-age=0, must-revalidate'], 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'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'Date': [b'Wed, 28 Jan 2026 13:07:45 GMT'], b'Etag': [b'W/"6f1rzfqt40cpj7"'], b'Referrer-Policy': [b'no-referrer-when-downgrade'], b'Set-Cookie': [b'datadome=3c~Yzh26v5x21s5dHqIKmqCJmACf~iZTLsIrmbtkn09d2flKdB5BSSqeUKyP82UiBT~42igus4eX07GP5qTcGk~vrv48TPM0sDxKs3MPA4IptRMbnmoIyG9CaJ6lWkfG; Max-Age=31536000; Domain=.leboncoin.fr; Path=/; Secure; SameSite=Lax'], b'Strict-Transport-Security': [b'max-age=15768000'], b'Vary': [b'accept-encoding'], b'Via': [b'1.1 fa5fdff0565bac70f31c39c016fef732.cloudfront.net (CloudFront)'], b'X-Amz-Cf-Id': [b'ddJtPb1gEHx6_ChDjVYLx5f_-J7-cHoFE6DhASFl_5GNJuNzEauJ1A=='], b'X-Amz-Cf-Pop': [b'FRA56-P14'], b'X-Cache': [b'Miss from cloudfront'], b'X-Datadome': [b'protected']}
      2026-01-28 13:07:51 [auto_selling_leboncoin.fr] INFO: defaultSearchOptions: {'limit': 10, 'filters': {'owner': {'user_id': '87bc28a0-9e80-45b5-8f4a-09b8e2818e09'}, 'enums': {'ad_type': ['offer']}, 'category': {'id': '1'}}}
      2026-01-28 13:07:51 [auto_selling_leboncoin.fr] INFO: cookies: [{'name': 'ry_ry-l3b0nco_realytics', 'value': 'eyJpZCI6InJ5XzEyNkNBRjRFLTJBMzgtNEVBMC04OTdCLUYzMjUyNkU1NUUyRiIsImNpZCI6bnVsbCwiZXhwIjoxODAxMTQxNjU3OTUxLCJjcyI6bnVsbH0%3D', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': '_pctx', 'value': '%7Bu%7DN4IgrgzgpgThIC4B2YA2qA05owMoBcBDfSREQpAeyRCwgEt8oBJAE0RXSwH18ykADAFsA5iIDM%2BAI4AfIQGsAngEZ6QgBZSQAXyA', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'ry_ry-l3b0nco_so_realytics', 'value': 'eyJpZCI6InJ5XzEyNkNBRjRFLTJBMzgtNEVBMC04OTdCLUYzMjUyNkU1NUUyRiIsImNpZCI6bnVsbCwib3JpZ2luIjp0cnVlLCJyZWYiOm51bGwsImNvbnQiOm51bGwsIm5zIjp0cnVlLCJzYyI6bnVsbCwic3AiOm51bGx9', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': '__Secure-Install', 'value': '197ec004-65b0-493b-a989-76b6fd742e7a', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'pa_privacy', 'value': '%22exempt%22', 'domain': 'www.leboncoin.fr', 'path': '/'}, {'name': '_pcid', 'value': '%7B%22browserId%22%3A%22mky1iki1lzb83hun%22%2C%22_t%22%3A%22n0mgg3tp%7Cmky1imhp%22%7D', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'datadome', 'value': 'R4ycnnKtFkBOkhBz_lgMvMbhbLfxuBjGxReU79rbwTfGKF5jF~~JrBwL_mzaCsiMHudcA4n4BB9vXDUBm7J0936CAEnzDIV11qFtcMVQksIZI1yUx4QQP~LzDXqAhl6T', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'didomi_token', 'value': 'eyJ1c2VyX2lkIjoiMTljMDRiNzYtNGIwMi02OTk5LWI1M2UtOGNkMWViY2FhOWIxIiwiY3JlYXRlZCI6IjIwMjYtMDEtMjhUMTM6MDc6MzMuNjgwWiIsInVwZGF0ZWQiOiIyMDI2LTAxLTI4VDEzOjA3OjMzLjY4MFoiLCJ2ZXJzaW9uIjpudWxsfQ==', 'domain': '.leboncoin.fr', 'path': '/'}, {'name': 'cnfdVisitorId', 'value': 'ba01ddb7-faaf-458f-ba9a-bc6596d57e1d', 'domain': '.leboncoin.fr', 'path': '/'}]
      2026-01-28 13:07:51 [auto_selling_leboncoin.fr] INFO: Payload for get listings: {'limit': 200, 'filters': {'owner': {'user_id': '87bc28a0-9e80-45b5-8f4a-09b8e2818e09'}, 'enums': {'ad_type': ['offer']}, 'category': {'id': '1'}}, 'offset': 0}
      2026-01-28 13:07:51 [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"]}, "owner": {"user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09"}}, "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=ry_ry-l3b0nco_realytics; name=_pctx; name=ry_ry-l3b0nco_so_realytics; name=__Secure-Install; name=pa_privacy; name=_pcid; name=datadome; name=didomi_token; name=cnfdVisitorId'
      2026-01-28 13:07:51 [zyte_api._retry] DEBUG: Starting call to 'zyte_api._async.AsyncZyteAPI.get.<locals>.request', this is the 1st time calling it.
      2026-01-28 13:07:52 [scrapy.core.engine] DEBUG: Crawled (200) <POST https://api.leboncoin.fr/finder/search> (referer: https://www.leboncoin.fr/boutique/120591/yemacab_automobiles.htm) ['zyte-api']
      2026-01-28 13:07:52 [auto_selling_leboncoin.fr] INFO: Found 20 listings on page 1
      2026-01-28 13:07:52 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3117578348
      2026-01-28 13:07:52 [azure.identity._credentials.environment] INFO: Incomplete environment configuration for EnvironmentCredential. These variables are set: AZURE_TENANT_ID, AZURE_CLIENT_ID
      2026-01-28 13:07:52 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): login.microsoftonline.com:443
      2026-01-28 13:07:53 [urllib3.connectionpool] DEBUG: https://login.microsoftonline.com:443 "POST /8ea908c1-4e85-4692-bc3f-3646b9b40891/oauth2/v2.0/token HTTP/1.1" 200 2006
      2026-01-28 13:07:53 [azure.identity._credentials.chained] INFO: DefaultAzureCredential acquired a token from WorkloadIdentityCredential
      2026-01-28 13:07:53 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): alxsourcingstorageprod.table.core.windows.net:443
      2026-01-28 13:07:53 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:07:53 [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%273117578348%27 HTTP/1.1" 200 None
      2026-01-28 13:07:53 [auto_selling_leboncoin.fr] INFO: Scrape type for 3117578348: 1
      2026-01-28 13:07:53 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3117578348
      2026-01-28 13:07:53 [auto_selling_leboncoin.fr] INFO: Extracted item: {'auction_title': '',
       'c_o_2_emission_value': None,
       'category': None,
       'color': 'Noir',
       'currency': 'EUR',
       'description': '🔧 YEMACAB AUTOMOBILES – Membre TOP GARAGE\n'
                      '📍 Situé à Taverny (95), véhicules sélectionnés, révisés au '
                      'meilleur prix\n'
                      '\n'
                      '✨✨✨✨✨✨✨✨✨✨\n'
                      '\n'
    • Tail

                   'Height': 800,
                   'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/ed/1d/47/ed1d4735eaa27d30f37899c678dc9b3423860c94.jpg?rule=ad-large',
                   'Width': 1068},
                  {'BlobStorageUrl': 'https://alxproduction.blob.core.windows.net/top-deal-listing/listing_4ddc223e-6863-58c4-b3fa-a4a88353b984/4ddc223e-6863-58c4-b3fa-a4a88353b984_image_3.jpg',
                   'Extension': 'jpg',
                   'FileSizeInBytes': 72617,
                   'Height': 657,
                   'OriginUrl': 'https://img.leboncoin.fr/api/v1/lbcpb1/images/9f/08/bd/9f08bd553c1eb68a27e77300c18d16f6a5b27c41.jpg?rule=ad-large',
                   'Width': 860}],
       'price': 41988,
       'price_includes_vat': False,
       'registration_date': '2021-03-01',
       'seats_number': 3,
       'seller_name': None,
       'title': '✨ 34.990 HT - Mercedes Sprinter Dépanneuse Porte-Voiture - 317 CDI '
                '– 170 ch - Carte grise VASP Dépannage – Carte blanche - Plateau '
                'Coulissant - TVA récupérable',
       'transmission': 'manual',
       'trim': None,
       'vin': None,
       'year': 2021}
      2026-01-28 13:08:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08: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%273124244071%27 HTTP/1.1" 200 None
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Saving data for 3124244071: {'created_time': 1769605680.312137, 'last_price_update_time': 1769605680.312147}
      2026-01-28 13:08:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3124244071') HTTP/1.1" 204 0
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3103944869
      2026-01-28 13:08:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08: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%273103944869%27 HTTP/1.1" 200 None
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Scrape type for 3103944869: 1
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3103944869
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_make: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 306, in _extract_make
          else brand_attribute_details.get("value_label")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3103944869, "first_publication_date": "2025-12-01 03:26:44", "expiration_date": "2026-01-30 03:26:44", "index_date": "2026-01-15 04:59:14", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "Alternateur Hybride Peugeot 508 - 3008 - 508 RXH / Citro\u00ebn DS5 Hybrid4 \u2013 R\u00e9f\u00e9rence 9676536980", "body": "\ud83d\udccc Recondionn\u00e9 Garantie 1 An  R\u00e9f\u00e9rence prise en charge : 9676536980\n\ud83d\ude97 V\u00e9hicules concern\u00e9s : Peugeot 508 Berline et RXH, 3008, Citro\u00ebn DS5 Hybrid4\n\n\u26a1 Montage possible dans notre atelier Prestation r\u00e9alis\u00e9e dans la journ\u00e9e et garantie par un professionnel qualifi\u00e9.\n\n\ud83d\udccdTop Garage Yemacab Automobiles\n17 Rue Constantin Pecqueur\n95150 Taverny\n\n\ud83d\udcde Contactez-nous vite pour un diagnostic ou un rendez-vous\u202f!", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3103944869", "price": [800], "price_cents": 80000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "200000", "values": ["200000"], "value_label": "200000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "spare_parts_availability", "value": "30", "values": ["30"], "key_label": "Dur\u00e9e de disponibilit\u00e9 des pi\u00e8ces d\u00e9tach\u00e9es", "value_label": "30 ans", "generic": true}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_model: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 319, in _extract_model
          else model_attribute_details.get("value_label")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3103944869, "first_publication_date": "2025-12-01 03:26:44", "expiration_date": "2026-01-30 03:26:44", "index_date": "2026-01-15 04:59:14", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "Alternateur Hybride Peugeot 508 - 3008 - 508 RXH / Citro\u00ebn DS5 Hybrid4 \u2013 R\u00e9f\u00e9rence 9676536980", "body": "\ud83d\udccc Recondionn\u00e9 Garantie 1 An  R\u00e9f\u00e9rence prise en charge : 9676536980\n\ud83d\ude97 V\u00e9hicules concern\u00e9s : Peugeot 508 Berline et RXH, 3008, Citro\u00ebn DS5 Hybrid4\n\n\u26a1 Montage possible dans notre atelier Prestation r\u00e9alis\u00e9e dans la journ\u00e9e et garantie par un professionnel qualifi\u00e9.\n\n\ud83d\udccdTop Garage Yemacab Automobiles\n17 Rue Constantin Pecqueur\n95150 Taverny\n\n\ud83d\udcde Contactez-nous vite pour un diagnostic ou un rendez-vous\u202f!", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3103944869", "price": [800], "price_cents": 80000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "200000", "values": ["200000"], "value_label": "200000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "spare_parts_availability", "value": "30", "values": ["30"], "key_label": "Dur\u00e9e de disponibilit\u00e9 des pi\u00e8ces d\u00e9tach\u00e9es", "value_label": "30 ans", "generic": true}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_transmission: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 334, in _extract_transmission
          if attribute_details.get("value_label") == "Automatique"
             ^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3103944869, "first_publication_date": "2025-12-01 03:26:44", "expiration_date": "2026-01-30 03:26:44", "index_date": "2026-01-15 04:59:14", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "Alternateur Hybride Peugeot 508 - 3008 - 508 RXH / Citro\u00ebn DS5 Hybrid4 \u2013 R\u00e9f\u00e9rence 9676536980", "body": "\ud83d\udccc Recondionn\u00e9 Garantie 1 An  R\u00e9f\u00e9rence prise en charge : 9676536980\n\ud83d\ude97 V\u00e9hicules concern\u00e9s : Peugeot 508 Berline et RXH, 3008, Citro\u00ebn DS5 Hybrid4\n\n\u26a1 Montage possible dans notre atelier Prestation r\u00e9alis\u00e9e dans la journ\u00e9e et garantie par un professionnel qualifi\u00e9.\n\n\ud83d\udccdTop Garage Yemacab Automobiles\n17 Rue Constantin Pecqueur\n95150 Taverny\n\n\ud83d\udcde Contactez-nous vite pour un diagnostic ou un rendez-vous\u202f!", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3103944869", "price": [800], "price_cents": 80000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/bc/b8/e7bcb8a4b52bc77ba6124e8cc61e661d8db8dc6d.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "200000", "values": ["200000"], "value_label": "200000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "spare_parts_availability", "value": "30", "values": ["30"], "key_label": "Dur\u00e9e de disponibilit\u00e9 des pi\u00e8ces d\u00e9tach\u00e9es", "value_label": "30 ans", "generic": true}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field transmission is not nullable
      Traceback (most recent call last):
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 237, in _extract_listing_item
          item["transmission"] = self._extract_transmission(details_data)
          ~~~~^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
          raise ValueError(f"Field {key} is not nullable")
      ValueError: Field transmission is not nullable
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Extracted item: None
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Found listing with ID: 3126926812
      2026-01-28 13:08:00 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08: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%273126926812%27 HTTP/1.1" 200 None
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Scrape type for 3126926812: 1
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Scraping new listing 3126926812
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_make: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 306, in _extract_make
          else brand_attribute_details.get("value_label")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3126926812, "first_publication_date": "2026-01-13 04:09:10", "expiration_date": "2026-03-14 04:09:10", "index_date": "2026-01-13 04:09:10", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "TOUTES PIECES PEUGEOT 508 HYBRIDE 2.0 HDI 163ch", "body": "\u267b\ufe0f  A vendre des pi\u00e8ces d\u00e9tach\u00e9es : \u267b\ufe0f\n\n\ud83d\udc49***ATTENTION CERTAINES PI\u00c8CES SONT PEUT \u00caTRE D\u00c9J\u00c0 VENDUES*** \ud83d\udc48\n\nPOSSIBILITE DE MONTER SUR PLACE EN SUPPLEMENT\n\n\ud83d\udd38ANNEE : 2012\n\ud83d\udd38Type de motorisation : 2.0 Hdi Hybride\n\ud83d\udd38Type de Boite de vitesses : Auto ETG6\n\ud83d\udd38Couleur du v\u00e9hicule : Gris\n\ud83d\udd38Genre : vp \n\nCertaines pi\u00e8ces sont peut-\u00eatre d\u00e9j\u00e0 vendues, les photos ne peuvent pas \u00eatre r\u00e9actualis\u00e9es tous les jours. Merci pour votre compr\u00e9hension.\n\n\u267b\ufe0f\u00c9quipement : \u267b\ufe0f\n- Batterie\n- Autoradio\n- L\u00e8ve vitre\n- Moteur essuie-glace\n\nCarrosserie :\n- Porte\n- Pare boue\n- Aile \n- Capot\n- Ciel de toit\n- Coffre / hayon / malle/volet arri\u00e8re\n- Face avant\n- Pare choc (avant / arri\u00e8re)\n- R\u00e9troviseur\n- Trappe \u00e0 essence\nInt\u00e9rieur :\n- Airbag /volant\n- Boutons divers\n- Bloc ABS\n- Frein \u00e0 main\n- Ceinture\n- Commande chauffage / clim\n- Console centrale\n- Commande l\u00e8ve vitre\n- Commodo / com 2000\n- Compteur\n- Kit int\u00e9rieur\n- Levier de vitesse\n- Moto ventilateur\n- Neiman\n- Planche de bord\n- Poign\u00e9e\n- Pompe de d\u00e9verrouillage\n- Pompe de DA\n- Si\u00e8ge / banquette\n\nSignalisation\n- Autres feux\n- Clignotant\n- Feu arri\u00e8re\n- Phare\n- r\u00e9p\u00e9titeur d\u2019aile\nPneumatiques jantes :\n- Pneus\n- Jante alu / t\u00f4le\nPi\u00e8ces du moteur :\n- Moteur complet\n- Boite de vitesse\n- Buse ventilo / ventilo\n- Bobine\n- D\u00e9bitm\u00e8tre\n- Pompe de clim\n- Pompe de DA\n- Pompe \u00e0 essence\n- Radiateur\n- Alternateur\n- Compresseur de clim\n- D\u00e9marreur\nTrain roulant :\n- Colonne de direction\n- Amortisseur\n- Train arri\u00e8re\n- Arbre de transmission\n- Cardan\n- Cr\u00e9maill\u00e8re\n- Etrier\n- Pivot\n- Jantes alu\n- Pneumatiques\n- \u2060Reducteur\n- \u2060Machine Electrique\n- \u2060Alternateur Hybride\n- \u2060Pompe \u00e0 eau Hybride\n\nNous sommes ouvert du lundi au samedi de 10h \u00e0 19h sans interruption", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3126926812", "price": [50], "price_cents": 5000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "500000", "values": ["500000"], "value_label": "500000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_model: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 319, in _extract_model
          else model_attribute_details.get("value_label")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3126926812, "first_publication_date": "2026-01-13 04:09:10", "expiration_date": "2026-03-14 04:09:10", "index_date": "2026-01-13 04:09:10", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "TOUTES PIECES PEUGEOT 508 HYBRIDE 2.0 HDI 163ch", "body": "\u267b\ufe0f  A vendre des pi\u00e8ces d\u00e9tach\u00e9es : \u267b\ufe0f\n\n\ud83d\udc49***ATTENTION CERTAINES PI\u00c8CES SONT PEUT \u00caTRE D\u00c9J\u00c0 VENDUES*** \ud83d\udc48\n\nPOSSIBILITE DE MONTER SUR PLACE EN SUPPLEMENT\n\n\ud83d\udd38ANNEE : 2012\n\ud83d\udd38Type de motorisation : 2.0 Hdi Hybride\n\ud83d\udd38Type de Boite de vitesses : Auto ETG6\n\ud83d\udd38Couleur du v\u00e9hicule : Gris\n\ud83d\udd38Genre : vp \n\nCertaines pi\u00e8ces sont peut-\u00eatre d\u00e9j\u00e0 vendues, les photos ne peuvent pas \u00eatre r\u00e9actualis\u00e9es tous les jours. Merci pour votre compr\u00e9hension.\n\n\u267b\ufe0f\u00c9quipement : \u267b\ufe0f\n- Batterie\n- Autoradio\n- L\u00e8ve vitre\n- Moteur essuie-glace\n\nCarrosserie :\n- Porte\n- Pare boue\n- Aile \n- Capot\n- Ciel de toit\n- Coffre / hayon / malle/volet arri\u00e8re\n- Face avant\n- Pare choc (avant / arri\u00e8re)\n- R\u00e9troviseur\n- Trappe \u00e0 essence\nInt\u00e9rieur :\n- Airbag /volant\n- Boutons divers\n- Bloc ABS\n- Frein \u00e0 main\n- Ceinture\n- Commande chauffage / clim\n- Console centrale\n- Commande l\u00e8ve vitre\n- Commodo / com 2000\n- Compteur\n- Kit int\u00e9rieur\n- Levier de vitesse\n- Moto ventilateur\n- Neiman\n- Planche de bord\n- Poign\u00e9e\n- Pompe de d\u00e9verrouillage\n- Pompe de DA\n- Si\u00e8ge / banquette\n\nSignalisation\n- Autres feux\n- Clignotant\n- Feu arri\u00e8re\n- Phare\n- r\u00e9p\u00e9titeur d\u2019aile\nPneumatiques jantes :\n- Pneus\n- Jante alu / t\u00f4le\nPi\u00e8ces du moteur :\n- Moteur complet\n- Boite de vitesse\n- Buse ventilo / ventilo\n- Bobine\n- D\u00e9bitm\u00e8tre\n- Pompe de clim\n- Pompe de DA\n- Pompe \u00e0 essence\n- Radiateur\n- Alternateur\n- Compresseur de clim\n- D\u00e9marreur\nTrain roulant :\n- Colonne de direction\n- Amortisseur\n- Train arri\u00e8re\n- Arbre de transmission\n- Cardan\n- Cr\u00e9maill\u00e8re\n- Etrier\n- Pivot\n- Jantes alu\n- Pneumatiques\n- \u2060Reducteur\n- \u2060Machine Electrique\n- \u2060Alternateur Hybride\n- \u2060Pompe \u00e0 eau Hybride\n\nNous sommes ouvert du lundi au samedi de 10h \u00e0 19h sans interruption", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3126926812", "price": [50], "price_cents": 5000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "500000", "values": ["500000"], "value_label": "500000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: DefaultOnExceptionError in _extract_transmission: 'NoneType' object has no attribute 'get'
      Traceback (most recent call last):
        File "/usr/src/app/common/utils/decorators.py", line 16, in wrapper
          return func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 334, in _extract_transmission
          if attribute_details.get("value_label") == "Automatique"
             ^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'get'
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Payload: {"list_id": 3126926812, "first_publication_date": "2026-01-13 04:09:10", "expiration_date": "2026-03-14 04:09:10", "index_date": "2026-01-13 04:09:10", "status": "active", "category_id": "6", "category_name": "\u00c9quipement auto", "subject": "TOUTES PIECES PEUGEOT 508 HYBRIDE 2.0 HDI 163ch", "body": "\u267b\ufe0f  A vendre des pi\u00e8ces d\u00e9tach\u00e9es : \u267b\ufe0f\n\n\ud83d\udc49***ATTENTION CERTAINES PI\u00c8CES SONT PEUT \u00caTRE D\u00c9J\u00c0 VENDUES*** \ud83d\udc48\n\nPOSSIBILITE DE MONTER SUR PLACE EN SUPPLEMENT\n\n\ud83d\udd38ANNEE : 2012\n\ud83d\udd38Type de motorisation : 2.0 Hdi Hybride\n\ud83d\udd38Type de Boite de vitesses : Auto ETG6\n\ud83d\udd38Couleur du v\u00e9hicule : Gris\n\ud83d\udd38Genre : vp \n\nCertaines pi\u00e8ces sont peut-\u00eatre d\u00e9j\u00e0 vendues, les photos ne peuvent pas \u00eatre r\u00e9actualis\u00e9es tous les jours. Merci pour votre compr\u00e9hension.\n\n\u267b\ufe0f\u00c9quipement : \u267b\ufe0f\n- Batterie\n- Autoradio\n- L\u00e8ve vitre\n- Moteur essuie-glace\n\nCarrosserie :\n- Porte\n- Pare boue\n- Aile \n- Capot\n- Ciel de toit\n- Coffre / hayon / malle/volet arri\u00e8re\n- Face avant\n- Pare choc (avant / arri\u00e8re)\n- R\u00e9troviseur\n- Trappe \u00e0 essence\nInt\u00e9rieur :\n- Airbag /volant\n- Boutons divers\n- Bloc ABS\n- Frein \u00e0 main\n- Ceinture\n- Commande chauffage / clim\n- Console centrale\n- Commande l\u00e8ve vitre\n- Commodo / com 2000\n- Compteur\n- Kit int\u00e9rieur\n- Levier de vitesse\n- Moto ventilateur\n- Neiman\n- Planche de bord\n- Poign\u00e9e\n- Pompe de d\u00e9verrouillage\n- Pompe de DA\n- Si\u00e8ge / banquette\n\nSignalisation\n- Autres feux\n- Clignotant\n- Feu arri\u00e8re\n- Phare\n- r\u00e9p\u00e9titeur d\u2019aile\nPneumatiques jantes :\n- Pneus\n- Jante alu / t\u00f4le\nPi\u00e8ces du moteur :\n- Moteur complet\n- Boite de vitesse\n- Buse ventilo / ventilo\n- Bobine\n- D\u00e9bitm\u00e8tre\n- Pompe de clim\n- Pompe de DA\n- Pompe \u00e0 essence\n- Radiateur\n- Alternateur\n- Compresseur de clim\n- D\u00e9marreur\nTrain roulant :\n- Colonne de direction\n- Amortisseur\n- Train arri\u00e8re\n- Arbre de transmission\n- Cardan\n- Cr\u00e9maill\u00e8re\n- Etrier\n- Pivot\n- Jantes alu\n- Pneumatiques\n- \u2060Reducteur\n- \u2060Machine Electrique\n- \u2060Alternateur Hybride\n- \u2060Pompe \u00e0 eau Hybride\n\nNous sommes ouvert du lundi au samedi de 10h \u00e0 19h sans interruption", "brand": "leboncoin", "ad_type": "offer", "url": "https://www.leboncoin.fr/ad/equipement_auto/3126926812", "price": [50], "price_cents": 5000, "images": {"thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb", "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-small", "nb_images": 1, "urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-image"], "urls_thumb": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-thumb"], "urls_large": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/1b/0b/9b1b0bb94f93a8f4b0ac35f56834d6578a11f107.jpg?rule=ad-large"]}, "attributes": [{"key": "activity_sector", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "stock_quantity", "value": "1", "values": ["1"], "value_label": "1", "generic": false}, {"key": "country_isocode3166", "value": "FR", "values": ["FR"], "value_label": "FR", "generic": false}, {"key": "vehicle_equipment_type", "value": "", "values": ["vehicle_replacement_repair"], "key_label": "Type", "value_label": "Remplacement et r\u00e9paration de v\u00e9hicules", "values_label": ["Remplacement et r\u00e9paration de v\u00e9hicules"], "generic": true, "display_ad_card": true}, {"key": "new_item_price", "value": "500000", "values": ["500000"], "value_label": "500000", "generic": false}, {"key": "shippable", "value": "false", "values": ["false"], "value_label": "false", "generic": false}, {"key": "is_import", "value": "false", "values": ["false"], "value_label": "false", "generic": false}], "location": {"country_id": "FR", "region_id": "12", "region_name": "Ile-de-France", "department_id": "95", "department_name": "Val-d'Oise", "city_label": "Taverny 95150", "city": "Taverny", "zipcode": "95150", "lat": 49.02725, "lng": 2.1931, "source": "address", "provider": "here", "is_shape": false, "feature": {"type": "Feature", "geometry": {"type": "Point", "coordinates": [2.1931, 49.02725]}, "properties": null}}, "owner": {"store_id": "48952704", "user_id": "87bc28a0-9e80-45b5-8f4a-09b8e2818e09", "type": "pro", "name": "YEMACAB AUTOMOBILES", "siren": "810546697", "no_salesmen": false, "activity_sector": "1"}, "options": {"has_option": false, "booster": false, "photosup": false, "urgent": false, "gallery": false, "sub_toplist": false, "continuous_top_ads": false, "highlight": false}, "has_phone": true, "similar": null, "counters": {}}
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] ERROR: Error extracting item: Field transmission is not nullable
      Traceback (most recent call last):
        File "/usr/src/app/crawlers/spiders/auto_selling_leboncoin.py", line 237, in _extract_listing_item
          item["transmission"] = self._extract_transmission(details_data)
          ~~~~^^^^^^^^^^^^^^^^
        File "/usr/src/app/crawlers/items.py", line 116, in __setitem__
          raise ValueError(f"Field {key} is not nullable")
      ValueError: Field transmission is not nullable
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: Extracted item: None
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: No more listings found to scrape
      2026-01-28 13:08:00 [scrapy.core.engine] INFO: Closing spider (finished)
      2026-01-28 13:08:00 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close cursor: 'SaveToCdlqDbAutoSelling' object has no attribute 'cursor'
      2026-01-28 13:08:00 [crawlers.pipelines.save_to_cdlq_db_auto_selling] DEBUG: [SaveToCdlqDbAutoSelling] failed to close connection: 'SaveToCdlqDbAutoSelling' object has no attribute 'conn'
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.cbs] DEBUG: CBS status check: state == <CbsAuthState.OK: 0>, expired == False, refresh required == False
      2026-01-28 13:08:00 [crawlers.pipelines.post_to_azurebus_auto_selling] DEBUG: [AzureBusPipeline] sent process scrape complete CloudEvent for item 267f214cfc3011f0a599c2c555c92d63
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.ATTACHED: 3> -> <LinkState.DETACH_SENT: 4>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.MAPPED: 3> -> <SessionState.END_SENT: 4>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.OPENED: 9> -> <ConnectionState.CLOSE_SENT: 11>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp._connection] INFO: Connection state changed: <ConnectionState.CLOSE_SENT: 11> -> <ConnectionState.END: 13>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.session] INFO: Session state changed: <SessionState.END_SENT: 4> -> <SessionState.DISCARDING: 6>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.management_link] INFO: Management link sender state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.management_link] INFO: Management link receiver state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
      2026-01-28 13:08:00 [azure.servicebus._pyamqp.link] INFO: Link state changed: <LinkState.DETACH_SENT: 4> -> <LinkState.DETACHED: 0>
      2026-01-28 13:08:00 [crawlers.pipelines.post_to_azurebus_auto_selling] INFO: [AzureBusPipeline] connection closed
      2026-01-28 13:08:00 [auto_selling_leboncoin.fr] INFO: auto_selling_leboncoin.fr Crawl ended with reason finished, scrape types: {<ScrapeType.NEW: 1>: 9, <ScrapeType.NEW_DUPLICATE_ID: 4>: 0, <ScrapeType.PRICE_UPDATE: 2>: 0, <ScrapeType.AUCTION_UPDATE: 3>: 0, <ScrapeType.SKIPPED: 0>: 0}
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08:01 [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%273103944869%27 HTTP/1.1" 200 None
      2026-01-28 13:08:01 [auto_selling_leboncoin.fr] INFO: Saving data for 3103944869: {'created_time': 1769605681.07745}
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3103944869') HTTP/1.1" 204 0
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08:01 [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%273126926812%27 HTTP/1.1" 200 None
      2026-01-28 13:08:01 [auto_selling_leboncoin.fr] INFO: Saving data for 3126926812: {'created_time': 1769605681.115226}
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "PATCH /ScrapedListings(PartitionKey='auto_selling_leboncoin.fr',RowKey='3126926812') HTTP/1.1" 204 0
      2026-01-28 13:08:01 [urllib3.connectionpool] DEBUG: https://alxsourcingstorageprod.table.core.windows.net:443 "POST /Tables HTTP/1.1" 409 None
      2026-01-28 13:08:01 [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%201768309681 HTTP/1.1" 200 None
      2026-01-28 13:08:01 [scrapy.extensions.feedexport] INFO: Stored jsonlines feed (18 items) in: file:///var/lib/scrapyd/items/sourcing_v2/auto_selling_leboncoin.fr/267f214cfc3011f0a599c2c555c92d63.jl
      2026-01-28 13:08:01 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
      {'downloader/request_bytes': 737,
       'downloader/request_count': 2,
       'downloader/request_method_count/GET': 1,
       'downloader/request_method_count/POST': 1,
       'downloader/response_bytes': 894099,
       'downloader/response_count': 2,
       'downloader/response_status_count/200': 2,
       'elapsed_time_seconds': 36.696802,
       'feedexport/success_count/FileFeedStorage': 1,
       'finish_reason': 'finished',
       'finish_time': datetime.datetime(2026, 1, 28, 13, 8, 1, 176833, tzinfo=datetime.timezone.utc),
       'item_scraped_count': 18,
       'log_count/DEBUG': 672,
       'log_count/ERROR': 14,
       'log_count/INFO': 447,
       'memusage/max': 126484480,
       'memusage/startup': 126484480,
       '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': 11.175470580346882,
       'scrapy-zyte-api/mean_response_seconds': 11.480388941708952,
       '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(2026, 1, 28, 13, 7, 24, 480031, tzinfo=datetime.timezone.utc)}
      2026-01-28 13:08:01 [scrapy.core.engine] INFO: Spider closed (finished)
      2026-01-28 13:08:01 [asyncio] ERROR: Unclosed client session
      client_session: <aiohttp.client.ClientSession object at 0x7f83ef0edc90>
      2026-01-28 13:08:01 [asyncio] ERROR: Unclosed client session
      client_session: <aiohttp.client.ClientSession object at 0x7f83ef0ee510>
    • Log

      /1/log/utf8/sourcing_v2/auto_selling_leboncoin.fr/267f214cfc3011f0a599c2c555c92d63/?job_finished=True

    • Source

      http://scrapyd-1:6800/logs/sourcing_v2/auto_selling_leboncoin.fr/267f214cfc3011f0a599c2c555c92d63.log

  • sourcelog
    last_update_time2026-01-28 13:08:01
    last_update_timestamp1769605681
    downloader/request_bytes737
    downloader/request_count2
    downloader/request_method_count/GET1
    downloader/request_method_count/POST1
    downloader/response_bytes894099
    downloader/response_count2
    downloader/response_status_count/2002
    elapsed_time_seconds36.696802
    feedexport/success_count/FileFeedStorage1
    finish_reasonfinished
    finish_timedatetime.datetime(2026, 1, 28, 13, 8, 1, 176833, tzinfo=datetime.timezone.utc)
    item_scraped_count18
    log_count/DEBUG672
    log_count/ERROR14
    log_count/INFO447
    memusage/max126484480
    memusage/startup126484480
    request_depth_max1
    response_received_count2
    scheduler/dequeued2
    scheduler/dequeued/memory2
    scheduler/enqueued2
    scheduler/enqueued/memory2
    scrapy-zyte-api/4290
    scrapy-zyte-api/attempts2
    scrapy-zyte-api/error_ratio0.0
    scrapy-zyte-api/errors0
    scrapy-zyte-api/fatal_errors0
    scrapy-zyte-api/mean_connection_seconds11.175470580346882
    scrapy-zyte-api/mean_response_seconds11.480388941708952
    scrapy-zyte-api/processed2
    scrapy-zyte-api/request_args/customHttpRequestHeaders2
    scrapy-zyte-api/request_args/experimental.responseCookies1
    scrapy-zyte-api/request_args/httpRequestBody1
    scrapy-zyte-api/request_args/httpRequestMethod1
    scrapy-zyte-api/request_args/httpResponseBody2
    scrapy-zyte-api/request_args/httpResponseHeaders2
    scrapy-zyte-api/request_args/responseCookies1
    scrapy-zyte-api/request_args/url2
    scrapy-zyte-api/status_codes/2002
    scrapy-zyte-api/success2
    scrapy-zyte-api/success_ratio1.0
    scrapy-zyte-api/throttle_ratio0.0
    start_timedatetime.datetime(2026, 1, 28, 13, 7, 24, 480031, tzinfo=datetime.timezone.utc)