Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
Carrefour

How to Scrape Carrefour Prices and Store Availability (Without Losing Location Context)

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable way to scrape Carrefour is to treat every price and stock result as contextual. Save the country site, postal code or selected store, fulfillment mode (shop, Drive, Click & Collect, or delivery), seller, product identifier, promotion state, availability text, timestamp, and source URL with every observation. Product pages often expose price data in JSON-LD and can be fetched with ordinary HTTP; search and category pages may need a JavaScript-capable browser. Never compare values from different stores, countries, or services as if they were one catalog.

Why a Carrefour price is not a single global value

Carrefour operates a country-specific online service connected to local stores, Drive pickup, Click & Collect, and delivery. Carrefour France’s terms state that displayed prices depend on the delivery location or pickup location selected by the customer and cannot be assumed to apply elsewhere. A scraper that records only price=3.99 has lost the most important part of the observation.

  • Country and site: France, Spain, Belgium, and other country sites can have different catalogs, currencies, tax presentation, and URLs.
  • Location: a postal code, delivery zone, or selected store can change both price and availability.
  • Fulfillment: in-store shopping, Drive pickup, Click & Collect, and home delivery are separate contexts.
  • Seller: a Carrefour-operated offer and a third-party marketplace offer are not interchangeable.
  • Time: promotions and stock change, so every result needs an observation timestamp.

Carrefour also says that offers and prices are valid while visible and available. Adding an item to a cart does not guarantee that it will still be available when the order is finally validated. Treat a catalog response as a time-stamped indication, not a reservation.

Design the record before making requests

Use a structured record so later comparisons remain honest. A practical minimum schema is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Albertsons eGift Card - $100 - Standard
  • Redemption Steps: Customer must present eGift QR code payment either printed, or on mobile device to Checker as tender.
  • Albertsons Companies gift cards can be redeemed at any of our store locations or for online transactions. For online purchases, gift cards must first be loaded to the applicable Albertsons Companies banner wallet (example Safeway, Jewel, Vons, etc).
  • Checker Instructions: Total order, Press EFT FULL, Scan QR code (printed or mobile version) with handheld scanner.
  • Self-checkout Instructions: Select "Pay with Scan" when prompted for payment type, then scan QR code with handheld scanner."
  • Visit ALBERTSONS.THEGIFTCARDSHOP.COM/RETAIL to find a store location near you
Field group Fields to retain Why it matters
Site and context Country, locale, selected store ID/name, postal code or delivery zone, fulfillment mode Explains geographic and service-specific differences.
Product Product ID (EAN/GTIN or site ID), name, brand, pack size, source URL Prevents comparing different sizes or similarly named products.
Price Shelf price, currency, unit price or price per kilogram/litre, promotion text, promotion end date when shown Separates a temporary offer from a regular or unit price.
Availability Displayed availability text, boolean interpretation, substitution or quantity note Catalog visibility is not guaranteed stock at checkout.
Channel Carrefour or marketplace seller, seller name, offer condition, stock quantity when exposed Marketplace offers can have different sellers and conditions.
Audit UTC timestamp, HTTP status, raw response or rendered evidence, parser version Lets you explain a change and reprocess data after a markup update.

Keep store, Drive, and delivery observations in separate rows even when the product ID is identical. For comparisons, use these axes together: country/site, selected location, fulfillment mode, seller/channel, product identifier and pack size, shelf versus unit price, promotion state, availability state, timestamp, and any substitution or fulfillment note.

Step-by-step collection workflow

1. Select the country site and establish context normally

  1. Choose the Carrefour domain for the country you intend to measure and store that locale in your job configuration.
  2. Use the site’s normal store, postal-code, Drive, or delivery selector. Do not assume the first store or an anonymous default is representative.
  3. Record the selected store or zone and the service mode before fetching products. If the site stores context in cookies or local storage, preserve the session for subsequent requests.

For a cross-country project, run the same product list separately per country. Do not normalize currencies and then present the result as a worldwide Carrefour price without retaining the original country and currency.

2. Start with product pages and JSON-LD

Carrefour product pages generally expose product and offer information in JSON-LD, making them the simplest target for an HTTP client. Parse the visible page as well as JSON-LD because the visible text often contains the exact availability wording and promotion explanation.

import json
import re
from datetime import datetime, timezone
from urllib.parse import urljoin

import requests
from bs4 import BeautifulSoup

PRODUCT_URL = "https://www.carrefour.fr/p/replace-with-a-product"
HEADERS = {"User-Agent": "price-monitor/1.0 (contact: [email protected])"}

r = requests.get(PRODUCT_URL, headers=HEADERS, timeout=30)
r.raise_for_status()
soup = BeautifulSoup(r.text, "html.parser")

jsonld_items = []
for tag in soup.select('script[type="application/ld+json"]'):
    try:
        value = json.loads(tag.string or tag.get_text())
        jsonld_items.extend(value if isinstance(value, list) else [value])
    except json.JSONDecodeError:
        continue

product = next((x for x in jsonld_items if isinstance(x, dict) and x.get("@type") in ("Product", ["Product"])), {})
offers = product.get("offers", {})
if isinstance(offers, list):
    offers = offers[0] if offers else {}

text = soup.get_text(" ", strip=True)
record = {
    "source_url": PRODUCT_URL,
    "observed_at": datetime.now(timezone.utc).isoformat(),
    "product_id": product.get("sku") or product.get("gtin13") or product.get("gtin").strip() if product.get("gtin") else None,
    "name": product.get("name"),
    "price": offers.get("price"),
    "currency": offers.get("priceCurrency"),
    "availability_jsonld": offers.get("availability"),
    "page_text_availability": re.search(r"(en stock|indisponible|disponible|rupture de stock)", text, re.I).group(1) if re.search(r"(en stock|indisponible|disponible|rupture de stock)", text, re.I) else None,
    "raw_html_saved": True,
}
print(json.dumps(record, ensure_ascii=False, indent=2))

Replace the example URL with a real product URL and add your recorded store, service, seller, pack size, unit price, and promotion fields. JSON-LD availability values are useful signals, but preserve the original on-page text instead of reducing everything to a guessed boolean.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Visa Physical Gift Card $200 (plus $6.95 Purchase Fee)
  • Gift Cards are shipped active and ready for use.
  • This card is non-reloadable. No cash or ATM access. Funds do not expire. If available funds remain on your card after the valid thru date has passed, please call customer service for a replacement card. A one-time purchase fee applies at the time of checkout. No fees after purchase.
  • To access your card information safely, type the complete website address shown on your Gift Card (MyGift.GiftCardMall.com) directly into your browser's address bar. Don't use search engines or shortened versions of the website address, as these may lead you to fake or fraudulent sites. Do not provide any Gift Card details (example: Card Number) to someone you do not know or trust. If you believe you've reached an illegitimate website, contact cardholder service at 1-888-524-1283. Be cautious of phishing sites, there are a variety of scams in which fraudsters try to trick others into paying with gift cards.
  • To report your Lost or Stolen Physical Visa Card, call Customer Service 24/7 at 1 (888) 524-1283 to cancel your Gift Card as soon as you can. You will be asked to provide the Gift Card number and other identifying information.
  • Use your Visa Gift Card in the U.S. everywhere Visa debit cards are accepted, including online.

3. Use a browser only where rendering requires it

Search and category pages can render their product grids client-side. A browser session is appropriate when a normal request returns an empty shell, when the location selector runs in JavaScript, or when you need the rendered evidence shown to a shopper.

import asyncio
from datetime import datetime, timezone
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        context = await browser.new_context(locale="fr-FR")
        page = await context.new_page()
        await page.goto("https://www.carrefour.fr/s?q=coffee", wait_until="domcontentloaded", timeout=60000)
        # Use the site's normal controls; selectors change by country and redesign.
        # Example: await page.get_by_role("button", name="Choisir un magasin").click()
        await page.wait_for_selector("[data-testid*='product'], article", timeout=30000)
        cards = await page.locator("article").evaluate_all("els => els.map(e => e.innerText)")
        print({
            "observed_at": datetime.now(timezone.utc).isoformat(),
            "url": page.url,
            "cards": cards,
        })
        await browser.close()

asyncio.run(main())

Use stable attributes discovered in the current country site rather than copying selectors from another Carrefour domain. Save a screenshot or HTML snapshot with the same context when an audit trail is important.

4. Check availability for a particular store or Drive point

Availability is a location-specific check. Select the store or Drive point through the public shopping flow, wait for the product page or result grid to update, then capture the displayed status and timestamp. Run one session per store or point; changing a cookie value blindly can leave the UI showing stale context.

Record distinctions such as “available for Drive,” “available for delivery,” “unavailable,” quantity limits, and substitution choices separately. A product visible in a national catalog may be unavailable at the selected store, and a product added to a cart can still fail at final validation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
DoorDash eGift Card
  • Get thousands of restaurants, convenience stores, pet stores, grocery stores, gifts, and more at your fingertips.
  • Easy ordering, order customizations, and real-time tracking
  • Pickup, group order, and scheduled delivery options available
  • No returns and no refunds on gift cards.

5. Preserve marketplace seller information

Carrefour’s marketplace terms describe an offer using a price, promotional price when applicable, product sheet, stock quantity, and condition, while distinguishing third-party sellers from Carrefour-operated sales. Store the seller identity and channel on every offer. If a page displays several sellers, emit one record per offer instead of selecting the cheapest value and discarding the others.

Robots, terms, and operational boundaries

Check the current robots.txt, terms, rate limits, and endpoint behavior for the country site before deployment. A Carrefour-focused technical cookbook reported disallow rules including /set-store, /get-store, and /webview; those paths are a warning not to call internal endpoints directly unless current rules and your authorization permit it. Use the normal public flow, throttle requests, identify your client, and stop when access controls indicate that automated access is not allowed.

There is no stable, cross-country Carrefour scraping API contract established by the official pages. Treat integrations as country- and page-specific, and revalidate after a redesign, domain change, promotion system change, or fulfillment-flow update.

Reliability, performance, and cost decisions

Choose the lightest method that preserves context

  • HTTP plus JSON-LD: fastest and least resource-intensive for known product URLs.
  • Browser rendering: necessary for client-side search/category grids and interactive location selection, but slower and more expensive to operate.
  • Hybrid: establish the location with a browser, then reuse the authenticated/session cookies for product requests where the site permits it.

Cache product URLs only with a short, explicit TTL when freshness matters. Never let a cache key omit country, store or zone, fulfillment mode, seller, or promotion context. Retry transient HTTP failures with exponential backoff, but do not repeatedly retry a bot challenge or a deliberate access denial.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Albertsons Companies Physical Gift Card - $100
  • Redemption Steps: Customer must present eGift QR code payment either printed, or on mobile device to Checker as tender.
  • Albertsons Companies gift cards can be redeemed at any of our store locations or for online transactions. For online purchases, gift cards must first be loaded to the applicable Albertsons Companies banner wallet (example Safeway, Jewel, Vons, etc).
  • Checker Instructions: Total order, Press EFT FULL, Scan QR code (printed or mobile version) with handheld scanner.
  • Self-checkout Instructions: Select "Pay with Scan" when prompted for payment type, then scan QR code with handheld scanner."
  • Visit ALBERTSONS.THEGIFTCARDSHOP.COM/RETAIL to find a store location near you

One vendor cookbook reported a 92.4% success rate for its measured Carrefour calls and said 11.0% of successful calls used a JavaScript token (Crawlbase, August 2026). Those are that vendor’s test metrics, not a universal Carrefour benchmark; your country, page type, rate, and session state can produce different results.

Common failures and fixes

Symptom Likely cause Fix
Price differs from the shopper’s screen Different store, postal code, country, or fulfillment mode Log and reproduce the exact location and service context; compare only like-for-like records.
Product grid is empty in requests Client-side rendering Use Playwright or another authorized browser-capable session and wait for the grid.
Product page has price but no stock Availability is rendered separately or is volatile Parse visible availability text, capture the timestamp, and recheck in the selected store context.
Session keeps reverting to a default store Location cookie/local storage was not retained or was overwritten Use one persistent browser context, select the store through the UI, and verify the displayed store before each batch.
HTTP 403, CAPTCHA, or bot-check page Access control, excessive rate, or disallowed automation Stop aggressive retries, review current robots and terms, reduce rate, and use an authorized collection method.
Marketplace comparison is misleading Seller, condition, or promotional offer was dropped Emit separate seller/channel records and retain stock quantity and condition when shown.
Parser breaks after a redesign Selectors or JSON-LD shape changed Keep raw HTML/rendered evidence, add parser tests, and revalidate every country adapter.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo can provide a rendered screenshot of a Carrefour page for visual verification or an audit artifact while your parser handles structured fields. It accepts the page URL over one GET request; use the resulting image to confirm that the selected store, price, promotion, and availability text actually appeared together. It is not a substitute for extracting JSON-LD or seller fields from HTML.

Cookie banners, newsletter popups, and chat widgets are removed before the shot. Bot checks, blank pages, failed loads, and timeouts are not billed, and the response identifies the page verdict and billing status. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. Every plan includes the features; 1,000 screenshots per month are free with no card, and paid plans start at $5 for 3,000 shots.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" 
  -d access_key=YOUR_API_KEY 
  --data-urlencode url=https://www.carrefour.fr/p/replace-with-a-product 
  -o carrefour.webp

Python

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={
        "access_key": "YOUR_API_KEY",
        "url": "https://www.carrefour.fr/p/replace-with-a-product",
    },
    timeout=90,
)
r.raise_for_status()
open("carrefour.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://www.carrefour.fr/p/replace-with-a-product'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
const fs = await import('node:fs/promises');
await fs.writeFile('carrefour.webp', Buffer.from(await res.arrayBuffer()));

See the ScreenshotNeo documentation for capture options and response headers. Use a saved screenshot alongside your structured record when you need to prove what the shopper-facing page displayed. Create a free ScreenshotNeo account to get 1,000 screenshots a month with no card.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

FAQ

Can I scrape one Carrefour URL and use it for every country?

No. Country sites, catalogs, currencies, fulfillment rules, and location selectors differ. Build a country-specific adapter and retain the locale on every row.

Best Value
$500 Apple Gift Card—Email Delivery - Season's greetings
  • For all things Apple - products, accessories, apps, games, music, movies, TV shows, iCloud+, and more.
  • Perfect for App Store purchases and subscriptions—get apps, games, music, movies, TV shows, and more.
  • The perfect gift to say happy birthday, thank you, congratulations, and more.
  • Available in $15 - 500, Card delivered via email or SMS
  • Use it for purchases at any Apple Store location, on the Apple Store app, apple.com, the App Store, iTunes, Apple Music, Apple TV, Apple News+, Apple Books, Apple Arcade, iCloud+, Fitness+, Apple One, and other Apple properties in US only

Does an “in stock” label guarantee I can complete an order?

No. Carrefour states that adding a product to the cart is not order validation. Availability can change before final checkout, so use the label as a time-stamped observation.

Should I compare shelf price or price per kilogram?

Store both. Shelf price answers the checkout question; unit price is the fair comparison when pack sizes differ.

When is a screenshot useful if I already parse JSON-LD?

A screenshot preserves the rendered, location-specific evidence a shopper saw, including banners or availability wording that may not be represented in structured data. Keep it as an audit artifact, not as a replacement for machine-readable extraction.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Can I scrape one Carrefour URL and use it for every country?

No. Country sites, catalogs, currencies, fulfillment rules, and location selectors differ. Build a country-specific adapter and retain the locale on every row.

Does an “in stock” label guarantee I can complete an order?

No. Carrefour states that adding a product to the cart is not order validation. Availability can change before final checkout, so use the label as a time-stamped observation.

Should I compare shelf price or price per kilogram?

Store both. Shelf price answers the checkout question; unit price is the fair comparison when pack sizes differ.

Quick Recap

Bestseller No. 1
Albertsons eGift Card - $100 - Standard
Albertsons eGift Card - $100 - Standard
Visit ALBERTSONS.THEGIFTCARDSHOP.COM/RETAIL to find a store location near you; No returns and no refunds on gift cards.
$100.00
Bestseller No. 2
Visa Physical Gift Card $200 (plus $6.95 Purchase Fee)
Visa Physical Gift Card $200 (plus $6.95 Purchase Fee)
Gift Cards are shipped active and ready for use.
$206.95
Bestseller No. 3
DoorDash eGift Card
DoorDash eGift Card
Easy ordering, order customizations, and real-time tracking; Pickup, group order, and scheduled delivery options available
$50.00
Bestseller No. 4
Albertsons Companies Physical Gift Card - $100
Albertsons Companies Physical Gift Card - $100
Visit ALBERTSONS.THEGIFTCARDSHOP.COM/RETAIL to find a store location near you; No returns and no refunds on gift cards.
$100.00
Bestseller No. 5
$500 Apple Gift Card—Email Delivery - Season's greetings
$500 Apple Gift Card—Email Delivery - Season's greetings
The perfect gift to say happy birthday, thank you, congratulations, and more.; Available in $15 - 500, Card delivered via email or SMS
$500.00

When is a screenshot useful if I already parse JSON-LD?

A screenshot preserves the rendered, location-specific evidence a shopper saw, including banners or availability wording that may not be represented in structured data. Keep it as an audit artifact, not as a replacement for machine-readable extraction.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.