Oscaro Product Scraper — Prices, References & Specs avatar

Oscaro Product Scraper — Prices, References & Specs

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Oscaro Product Scraper — Prices, References & Specs

Oscaro Product Scraper — Prices, References & Specs

Oscaro product scraper and automotive parts data API for product searches, category URLs and exact product pages. Export EUR prices, brands, manufacturer references, product IDs, images, availability, delivery estimates and structured technical specifications across France, Spain and Portugal.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

18 hours ago

Last modified

Features

Limited permissions

Share

Oscaro Product Scraper — Prices, References, EAN & Specs

Apify Actor Maintenance Data Format Markets Pagination

Automotive aftermarket spare parts data, OEM cross-references, EAN codes, technical specifications, and EUR pricing. This high-performance Oscaro scraper and Oscaro data extractor turns keyword searches, automotive part references, category taxonomy trees, and direct product URLs across Oscaro France (oscaro.com), Oscaro Spain (oscaro.es), and Oscaro Portugal (oscaro.pt) into clean, standardized datasets.

Built with automated lazy-load card hydration and deep multi-page pagination, the Actor captures genuine OEM/OES part references, discount depth, stock availability, and full technical specifications at scale. No login, no CAPTCHA friction, and no browser infrastructure to maintain.

Export every record seamlessly to JSON, CSV, Excel, or consume programmatically via the Apify REST API.

🎯 Built for: Automotive parts retailers, distributor networks, marketplace repricing systems, PIM & catalog integration teams, aftermarket intelligence analysts, and fleet management software developers.


⚡ At a glance

CapabilitySpecification
Supported MarketsFrance (oscaro.com), Spain (oscaro.es), Portugal (oscaro.pt)
Search ModesKeyword search, OE/OES part number, EAN/GTIN code, Category URL, Direct Product URL
Pagination & DepthUnlocked multi-page pagination (1,000+ items, automated ?page=N stepping)
Data NormalizationReal-time price breakdown (price, originalPrice, savings), availability, specs array
Hydration EngineAutomated continuous scroll to hydrate lazy-loaded .productbox skeleton cards
Output FormatsStructured JSON, CSV, Excel (XLSX), HTML table, or live Apify Dataset API
Proxy ArchitectureManaged Residential Proxies with geo-targeting matching storefront country
Enrichment ModeOptional deep product page inspection (includeDetails) for full JSON-LD schema

🔎 Why scrape Oscaro automotive data?

Oscaro is Europe's premier digital retailer for automotive replacement parts, featuring hundreds of thousands of active listings from leading component manufacturers (Bosch, Valeo, Mann-Filter, Brembo, Ferodo, LuK, Monroe, and SKF). Every listing delivers structured technical compatibility attributes, OE cross-reference numbers, and live pricing.

However, extracting Oscaro data manually presents severe operational bottlenecks:

  1. Dynamic Lazy Loading: Category listings render empty skeleton placeholders (.product-placeholder) that only hydrate upon continuous viewport scrolling.
  2. Catalog Breadth: Major maintenance categories (brake pads, oil filters, timing belts) span dozens of pagination pages containing thousands of unique SKUs.
  3. Cross-Border Variance: Pricing, shipping lead times, and promotional discounts diverge across the French, Spanish, and Portuguese localized storefronts.
  4. Reference Complexity: Matching aftermarket SKUs against vehicle-specific original equipment (OE) numbers requires clean, structured attribute extraction.

This Oscaro Product Scraper abstracts away browser management and dynamic hydration, returning a consistent, de-duplicated data schema optimized for retail and catalog workflows.

Primary commercial applications:

  • 💶 Dynamic Competitive Repricing — track live aftermarket prices, monitor recommended retail price (RRP) markdowns, and execute automated repricing.
  • 🔁 OE & Aftermarket Cross-Referencing — map manufacturer references and EAN codes to build comprehensive auto parts compatibility databases.
  • 🧾 PIM & Catalog Enrichment — pull verified technical specifications (specifications[]), high-resolution product imagery, and fitment notes.
  • 🏪 Marketplace Assortment Auditing — identify catalog gaps by benchmarking Oscaro's brand representation against your internal inventory.
  • 🌍 European Cross-Market Arbitrage — compare parts pricing across France, Spain, and Portugal to optimize cross-border wholesale procurement.

🏗️ Architecture & Ingestion Flow

flowchart TD
A["User Input: Queries / Category URLs / Product URLs"] --> B["Select Storefront Region: FR / ES / PT"]
B --> C["Initialize Geo-Targeted Residential Proxy Connection"]
C --> D["Launch Anti-Detect Browser Session"]
D --> E{"Task Type"}
E -- "Listing / Category / Query" --> F["Navigate to Catalog Endpoint"]
F --> G["Execute Auto-Scroll to Hydrate Real .productbox Cards"]
G --> H["Extract Product IDs, References, Prices & Stock"]
H --> I{"Next Page Exists & maxResults Not Reached?"}
I -- "Yes" --> J["Advance Page: ?page=N"]
J --> G
I -- "No" --> K{"includeDetails Enabled?"}
E -- "Direct Product URL" --> L["Extract Full Product Page Schema"]
L --> K
K -- "Yes" --> M["Enrich with Full JSON-LD Specs & EAN"]
K -- "No" --> N["Deduplicate by Oscaro Product ID"]
M --> N
N --> O["Push Structured Records to Apify Dataset"]

⚖️ Feature Comparison: Oscaro Scraper vs Generic Alternatives

FeatureHaketa Oscaro ScraperGeneric HTML ScraperManual Sourcing
Dynamic Skeleton Hydration✅ Automatic lazy-load scroll❌ Fails on placeholder skeletons❌ Extremely tedious
Deep Pagination✅ 1,000+ items across pages🟡 Often breaks on query caps❌ Limited to first page
OE & Ref Extraction✅ Granular manufacturer codes🟡 Unstructured text dumps🟡 Prone to copy errors
Multi-Storefront Support✅ France, Spain, Portugal❌ Single-market only❌ Multi-tab manual switching
Residential Geo-Proxies✅ Built-in matching country❌ Extra proxy infrastructure needed❌ Blocked by Cloudflare
Deduplication✅ Stable productId dedup❌ Frequent duplicate records❌ High human error rate

✨ Key Extraction Capabilities

  • ✅ Multi-Input Flexibility — supply broad part keywords (e.g. disque de frein), exact part numbers (Brembo 09.9145.11), OE numbers, or full category URLs.
  • ✅ Automated Deep Pagination — sweeps listing categories across multiple pages (?page=2, ?page=3, etc.) with zero hard limits, retrieving 1,000+ products per execution.
  • ✅ Lazy-Load Hydration Engine — intelligently scrolls the document until all .productbox components are fully populated before parsing DOM attributes.
  • ✅ Comprehensive Price Metrics — captures current checkout price (price), pre-discount recommended price (originalPrice), calculated euro savings (savings), and percentage discount (discountPercent).
  • ✅ Technical Specifications Array — normalizes parts specifications into structured { name, value } pairs (e.g. diameter, thickness, fitting position, brake system type).
  • ✅ Regional Storefront Switching — easily switch between French (FR), Spanish (ES), and Portuguese (PT) storefronts with matching regional locales and currency symbols.
  • ✅ De-duplicated Datasets — automatically prevents duplicate entries across overlapping search queries using unique Oscaro product identifiers.

The scraper supports comprehensive catalog sweeping across all major vehicle repair domains:

  • Braking Systems: Brake discs, brake pads, calipers, master cylinders, brake hoses, and ABS sensors (Brembo, Ferodo, TRW, Bosch).
  • Filtration & Service: Oil filters, air filters, cabin pollen filters, fuel filters, and transmission filters (Mann-Filter, Purflux, Mahle).
  • Suspension & Steering: Shock absorbers, coil springs, suspension arms, ball joints, and tie rod ends (Monroe, Sachs, KYB).
  • Clutch & Transmission: Dual-mass flywheels, clutch kits, release bearings, and drive shafts (LuK, Valeo, Sachs).
  • Engine Cooling & Heating: Radiators, water pumps, thermostats, cooling fans, and heater cores (Valeo, Gates, Continental).
  • Ignition & Electrical: Alternators, starter motors, spark plugs, glow plugs, and ignition coils (Bosch, NGK, Denso).
  • Exhaust & Emissions: Catalytic converters, DPF/FAP diesel particulate filters, EGR valves, and lambda oxygen sensors.

🎯 Industry Use Cases

1. Auto Parts E-Commerce & Marketplaces

Maintain competitive pricing by tracking daily price fluctuations on high-velocity maintenance components (filters, brake pads, wiper blades, spark plugs). Automatically adjust your retail prices to maximize margins and conversion rates.

2. Automotive PIM & ERP Data Integration

Enrich internal product information management (PIM) systems with high-resolution parts images, comprehensive brand references, and verified EAN/GTIN barcodes.

3. Spare Parts Wholesalers & Distributors

Cross-reference aftermarket part codes across competing brands (e.g. identifying the Mann-Filter equivalent of a Purflux oil filter) to suggest alternative components when primary stock is unavailable.

4. Fleet Maintenance & Cost Optimization

Commercial fleet managers can audit parts replacement estimates against live consumer market prices to ensure repair facilities are billing fair market rates.


📊 Automotive Data Normalization Guide

This scraper implements structured data normalization rules to ensure seamless integration into ERP and PIM systems:

  • Monetary Units: All price figures (price, originalPrice, savings) are parsed into standardized floating-point numbers in Euros, stripped of whitespace and currency glyphs.
  • Brand Consistency: Manufacturer brand names are normalized into uppercase canonical strings (e.g., BOSCH, VALEO, FEBI BILSTEIN).
  • Technical Specification Attributes: Specifications are transformed into an array of clean key-value dictionaries, decoupling dimensional values from unit descriptors.
  • Reference Sanitation: Internal whitespace and punctuation variants in reference numbers are preserved exactly as published to ensure exact matching against OEM parts catalogs.
  • Image URL Resolution: Relative CDN paths are resolved to high-resolution absolute image endpoints suitable for direct catalog asset downloads.

📥 Input Configuration

ParameterTypeDefaultDescription
queriesArray["filtre à huile"]List of part names, manufacturer part numbers, OE codes, or EANs to search.
startUrlsArray[]Direct Oscaro category, listing, or exact product URLs.
regionString"FR"Storefront market: FR (oscaro.com), ES (oscaro.es), or PT (oscaro.pt).
maxResultsInteger0Maximum product records to collect (0 = unlimited pagination). Prefilled to 50 for fast trial runs.
includeDetailsBooleanfalseVisit individual product pages to extract deep JSON-LD attributes and full image galleries.

📤 Output Dataset Schema

Each product record is output with rich, standardized attributes:

🏷️ Identity & Manufacturer Fields

FieldTypeCoverageDescription
productIdString🟢 HighUnique permanent Oscaro catalog identifier (e.g., 456123).
titleString🟢 HighComplete product headline including brand, part category, and model.
brandString🟢 HighComponent manufacturer brand name (e.g., BOSCH, VALEO, BREMBO).
referenceString🟢 HighManufacturer reference number (e.g., 0 986 424 797).
eanString🟡 Conditional13-digit European Article Number (GTIN barcode).
categoryString🟢 HighPrimary automotive component category.
productUrlString🟢 HighDirect canonical link to the item on Oscaro.
imageUrlString🟢 HighPrimary high-resolution component photograph URL.

💶 Pricing & Stock Attributes

FieldTypeCoverageDescription
priceNumber🟢 HighCurrent selling price in Euros (€).
originalPriceNumber🟡 ConditionalManufacturer suggested retail price (pre-discount).
savingsNumber🟡 ConditionalTotal monetary discount in Euros.
discountPercentNumber🟡 ConditionalPercentage reduction from original retail price.
currencyString🟢 HighCurrency code (EUR).
availableBoolean🟢 HighStock availability flag (true if in stock).
deliveryEstimateString🟡 ConditionalEstimated shipping and delivery timeframe.

⚙️ Specifications & Context

FieldTypeCoverageDescription
specificationsArray🟢 HighStructured technical parameters as { name, value } objects.
regionString🟢 HighSource storefront market (FR, ES, PT).
queryString🟡 ConditionalInput keyword or part code that matched the item.
searchPositionNumber🟢 HighPlacement index within the search or category listing.
scrapedAtString🟢 HighISO 8601 UTC timestamp of data collection.

📊 Sample Output Record

{
"productId": "3148920",
"title": "BOSCH Filtre à huile - 0 451 103 314",
"partName": "Filtre à huile",
"brand": "BOSCH",
"reference": "0 451 103 314",
"ean": "3165141042451",
"price": 8.45,
"originalPrice": 14.20,
"savings": 5.75,
"discountPercent": 40,
"currency": "EUR",
"available": true,
"deliveryEstimate": "Livraison en 24/48h",
"category": "Filtre à huile",
"productUrl": "https://www.oscaro.com/filtre-a-huile-bosch-0-451-103-314-3148920-7-p",
"imageUrl": "https://az248.oscaro.com/bmp/zoom/30/0451103314.jpg",
"specifications": [
{ "name": "Diamètre extérieur [mm]", "value": "76" },
{ "name": "Diamètre intérieur 1 [mm]", "value": "62" },
{ "name": "Filetage", "value": "3/4\" 16 UNF" },
{ "name": "Hauteur [mm]", "value": "79" },
{ "name": "Pression d'ouverture clapet de dérivation [bar]", "value": "1" }
],
"region": "FR",
"query": "filtre à huile",
"searchPosition": 1,
"scrapedAt": "2026-11-10T13:35:00.000Z"
}

💻 API Integration Examples

Node.js (Apify Client SDK)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
queries: ['plaquettes de frein', 'disque de frein'],
region: 'FR',
maxResults: 100,
includeDetails: false,
};
const run = await client.actor('haketa/oscaro-product-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully scraped ${items.length} Oscaro automotive parts:`);
for (const part of items) {
console.log(`[${part.brand}] ${part.title} -> €${part.price} (Ref: ${part.reference})`);
}

Python (Apify Client SDK)

import os
from apify_client import ApifyClient
client = ApifyClient(os.getenv("APIFY_TOKEN"))
run_input = {
"queries": ["amortisseur"],
"region": "ES",
"maxResults": 75,
}
run = client.actor("haketa/oscaro-product-scraper").call(run_input=run_input)
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Extracted {len(dataset_items)} parts from Oscaro Spain:")
for item in dataset_items:
print(f"- {item.get('title')}: €{item.get('price')} (Available: {item.get('available')})")

Direct cURL Request

curl -X POST "https://api.apify.com/v2/acts/haketa~oscaro-product-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"queries": ["filtre à huile"],
"region": "FR",
"maxResults": 50
}'

💡 Best Practices & Pro Tips

  • 📦 Bulk Extraction via Category URLs: For massive catalog sweeps, pass high-level category URLs (e.g. /fr/disque-de-frein...) in startUrls. The Actor will automatically paginate through the full category hierarchy.
  • 🎯 Language Alignment: Match your search terms to the target market language (filtre à huile for France, filtro de aceite for Spain, filtro de óleo for Portugal).
  • ⚡ Optimizing Runtime & Cost: Keep includeDetails: false unless you specifically need secondary photo galleries or extended JSON-LD descriptions. The primary listing cards already deliver complete pricing, references, availability, and technical specs.
  • 📆 Automated Trend Tracking: Schedule weekly runs to capture fluctuating manufacturer discounts across major component lines ahead of peak seasonal driving periods.

❓ Frequently Asked Questions (FAQ)

Does this Actor require an Oscaro user account or login? No. The scraper gathers data exclusively from public storefront catalog and search pages without requiring user accounts or saved sessions.

How does deep pagination function on Oscaro? Oscaro catalogs paginate via standard query parameter structures (?page=2, ?page=3). The Actor automatically handles continuous scrolling to hydrate lazy-loaded DOM elements on each page, then advances through sequential pages until maxResults is reached or the catalog is exhausted.

How are residential proxies managed? The Actor automatically provisions Apify Residential Proxies geolocated to the specific storefront selected (France, Spain, or Portugal). This ensures localized pricing and eliminates regional geo-blocking.

Can I search directly by OE or manufacturer reference? Yes. You can supply exact aftermarket part numbers (e.g. BOSCH 0 451 103 314) or vehicle manufacturer OE codes in the queries input list.

Why are some discount percentages missing? Certain manufacturers and aftermarket parts are sold at standard net retail prices without promotional discounts. The Actor returns null for originalPrice and discountPercent when no promotional markdown is active.

Can I run large catalog sweeps with thousands of products? Yes. By providing broad category URLs (e.g. /fr/plaquettes-de-frein...) and setting maxResults: 1000 or higher, the Actor will automatically navigate across pages, waiting for lazy-loaded products to hydrate before moving to the next page.

What is the difference between manufacturer references and OE numbers? A manufacturer reference (OES) is assigned by the component supplier (e.g., Bosch 0 986 424 797), whereas an original equipment (OE) number is assigned by the vehicle maker (e.g., Volkswagen 1K0 698 151). Both types can be searched and extracted cleanly.

Can I schedule automated weekly price checks? Yes. You can schedule the Actor using standard cron expressions in the Apify Console. Pair scheduled runs with Apify Webhooks to notify your backend or pricing engine whenever price changes are detected.

How does the scraper handle Cloudflare or anti-bot verification? The Actor runs with Patchright anti-detect browser capabilities and automated session rotation over residential proxies. If a verification challenge or rate limit occurs, the session is refreshed and retried automatically.

Does this Actor export data in CSV or Excel format? Yes. You can export the dataset in JSON, CSV, or Excel (XLSX) directly from the Apify Console or via the Apify Dataset API.

How quickly does the Actor complete a typical extraction? A standard search query producing 50 hydrated product records completes in approximately 30 to 60 seconds. Full category sweeps with hundreds of products paginate continuously with steady data streaming.



📋 Changelog

Version 1.2 (2026-11)

  • 🚀 Unlocked 1,000+ Deep Pagination: Removed restrictive 5,000 caps; added support for unlimited (maxResults: 0) and massive multi-page pagination.
  • ⚡ Optimized Prefill Execution: Prefill parameters configured for fast 30-to-60 second verification runs.
  • 🛠️ Hardened Dynamic Skeleton Hydration: Improved continuous scroll logic for lazy-loaded .productbox cards, eliminating empty card anomalies.
  • 🏷️ Schema Validation Alignment: Cleaned dataset schema structure and standardized output metadata templates.

Version 1.1

  • 🌍 Added cross-market support for Oscaro Spain (oscaro.es) and Oscaro Portugal (oscaro.pt).
  • 📊 Introduced structured technical specifications extraction (specifications[]).
  • 💶 Added automated calculation of net savings and percentage discounts.

Version 1.0

  • 📦 Initial release supporting French storefront keyword searches and direct product URL parsing.
⌂ 换网址