feat: implement new search service with multiple site parsers, search configuration, and supporting inspection/verification scripts.

This commit is contained in:
Michael committed 2025-11-30 22:04:14 +01:00
1 parent 95e38287cb
commit 64067347d1
13 files changed
+300 -129

No files matched your search

+12 -12
View File
@@ -65,9 +65,9 @@ SITE_CONFIGS = {
"stokomani.fr": {
"name": "Stokomani",
"search_url": "https://www.stokomani.fr/search?options%5Bprefix%5D=last&q={query}",
"product_selector": "a.reversed-link.block, a[href*='/products/']",
"product_image_selector": "img[loading='lazy'], img[class*='object'], img[sizes]",
"wait_selector": "a.reversed-link.block, .product-card",
"product_selector": "div.product-card",
"product_image_selector": "div.media-wrapper img, img[class*='product-card__image']",
"wait_selector": "div.product-card",
"category": "Discount",
"requires_proxy": False,
},
@@ -130,9 +130,9 @@ SITE_CONFIGS = {
"lincroyable.fr": {
"name": "L'Incroyable",
"search_url": "https://www.lincroyable.fr/recherche-query={query}/",
"product_selector": "div.product-card, div.product-miniature, article",
"product_image_selector": "img.product-image, img[class*='product'], picture img",
"wait_selector": "div.product-card, div.product-miniature, article",
"product_selector": "div.tailleBlocProdNew",
"product_image_selector": "img.imgCoup2coeur, img[class*='product']",
"wait_selector": "div.tailleBlocProdNew",
"category": "Discount",
"requires_proxy": False,
},
@@ -157,18 +157,18 @@ SITE_CONFIGS = {
"auchan.fr": {
"name": "Auchan",
"search_url": "https://www.auchan.fr/recherche?text={query}",
"product_selector": "article, div[class*='product-card'], div[class*='list__item']",
"product_image_selector": "img[class*='product'], img[src*='auchan']",
"wait_selector": "article, div[class*='product-card'], div[class*='list__item']",
"product_selector": "article.product-thumbnail a.product-thumbnail__details-wrapper, div[class*='product-card'] a",
"product_image_selector": ".product-thumbnail__picture img, img[class*='product']",
"wait_selector": "article.product-thumbnail, div[class*='product-card']",
"category": "Grande Surface",
"requires_proxy": False,
},
"carrefour.fr": {
"name": "Carrefour",
"search_url": "https://www.carrefour.fr/s?q={query}",
"product_selector": "a[href*='/p/'], a[href*='/produit'], article a, div[class*='product'] a",
"product_image_selector": "img, picture source",
"wait_selector": None,
"product_selector": "article.product-list-card-plp-grid-new",
"product_image_selector": "img.product-card-image-new__content",
"wait_selector": "article.product-list-card-plp-grid-new",
"category": "Grande Surface",
"requires_proxy": False,
},