Oscaro Product Scraper — Prices, References & Specs
Pricing
from $3.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
Features
Share
Oscaro Product Scraper — Prices, References, EAN & Specs
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
| Capability | Specification |
|---|---|
| Supported Markets | France (oscaro.com), Spain (oscaro.es), Portugal (oscaro.pt) |
| Search Modes | Keyword search, OE/OES part number, EAN/GTIN code, Category URL, Direct Product URL |
| Pagination & Depth | Unlocked multi-page pagination (1,000+ items, automated ?page=N stepping) |
| Data Normalization | Real-time price breakdown (price, originalPrice, savings), availability, specs array |
| Hydration Engine | Automated continuous scroll to hydrate lazy-loaded .productbox skeleton cards |
| Output Formats | Structured JSON, CSV, Excel (XLSX), HTML table, or live Apify Dataset API |
| Proxy Architecture | Managed Residential Proxies with geo-targeting matching storefront country |
| Enrichment Mode | Optional 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:
- Dynamic Lazy Loading: Category listings render empty skeleton placeholders (
.product-placeholder) that only hydrate upon continuous viewport scrolling. - Catalog Breadth: Major maintenance categories (brake pads, oil filters, timing belts) span dozens of pagination pages containing thousands of unique SKUs.
- Cross-Border Variance: Pricing, shipping lead times, and promotional discounts diverge across the French, Spanish, and Portuguese localized storefronts.
- 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 TDA["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 --> GI -- "No" --> K{"includeDetails Enabled?"}E -- "Direct Product URL" --> L["Extract Full Product Page Schema"]L --> KK -- "Yes" --> M["Enrich with Full JSON-LD Specs & EAN"]K -- "No" --> N["Deduplicate by Oscaro Product ID"]M --> NN --> O["Push Structured Records to Apify Dataset"]
⚖️ Feature Comparison: Oscaro Scraper vs Generic Alternatives
| Feature | Haketa Oscaro Scraper | Generic HTML Scraper | Manual 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
.productboxcomponents 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.
🔧 Popular Automotive Component Categories
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
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | Array | ["filtre à huile"] | List of part names, manufacturer part numbers, OE codes, or EANs to search. |
startUrls | Array | [] | Direct Oscaro category, listing, or exact product URLs. |
region | String | "FR" | Storefront market: FR (oscaro.com), ES (oscaro.es), or PT (oscaro.pt). |
maxResults | Integer | 0 | Maximum product records to collect (0 = unlimited pagination). Prefilled to 50 for fast trial runs. |
includeDetails | Boolean | false | Visit 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
| Field | Type | Coverage | Description |
|---|---|---|---|
productId | String | 🟢 High | Unique permanent Oscaro catalog identifier (e.g., 456123). |
title | String | 🟢 High | Complete product headline including brand, part category, and model. |
brand | String | 🟢 High | Component manufacturer brand name (e.g., BOSCH, VALEO, BREMBO). |
reference | String | 🟢 High | Manufacturer reference number (e.g., 0 986 424 797). |
ean | String | 🟡 Conditional | 13-digit European Article Number (GTIN barcode). |
category | String | 🟢 High | Primary automotive component category. |
productUrl | String | 🟢 High | Direct canonical link to the item on Oscaro. |
imageUrl | String | 🟢 High | Primary high-resolution component photograph URL. |
💶 Pricing & Stock Attributes
| Field | Type | Coverage | Description |
|---|---|---|---|
price | Number | 🟢 High | Current selling price in Euros (€). |
originalPrice | Number | 🟡 Conditional | Manufacturer suggested retail price (pre-discount). |
savings | Number | 🟡 Conditional | Total monetary discount in Euros. |
discountPercent | Number | 🟡 Conditional | Percentage reduction from original retail price. |
currency | String | 🟢 High | Currency code (EUR). |
available | Boolean | 🟢 High | Stock availability flag (true if in stock). |
deliveryEstimate | String | 🟡 Conditional | Estimated shipping and delivery timeframe. |
⚙️ Specifications & Context
| Field | Type | Coverage | Description |
|---|---|---|---|
specifications | Array | 🟢 High | Structured technical parameters as { name, value } objects. |
region | String | 🟢 High | Source storefront market (FR, ES, PT). |
query | String | 🟡 Conditional | Input keyword or part code that matched the item. |
searchPosition | Number | 🟢 High | Placement index within the search or category listing. |
scrapedAt | String | 🟢 High | ISO 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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...) instartUrls. The Actor will automatically paginate through the full category hierarchy. - 🎯 Language Alignment: Match your search terms to the target market language (
filtre à huilefor France,filtro de aceitefor Spain,filtro de óleofor Portugal). - ⚡ Optimizing Runtime & Cost: Keep
includeDetails: falseunless 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.
🔗 Recommended Complementary Actors
- AliExpress Product Scraper — Extract aftermarket electronics, accessories, and tools from global marketplaces.
- Tokopedia Scraper — Scrape e-commerce listings, pricing, and seller ratings from Southeast Asia.
- Tech Stack Detector — Website Tech, Email Provider & Leads — Uncover the software infrastructure and contact signals of e-commerce competitors.
- RSS Feed Reader — Parse RSS, Atom & Podcast Feeds to JSON — Ingest automotive industry news and blog publications.
📋 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
.productboxcards, 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.