Tienda Solar Catalog Scraper
Pricing
from $1.00 / 1,000 results
Tienda Solar Catalog Scraper
Scrape the full tienda-solar.es catalog (solar panels, inverters, batteries, kits) in 6 languages with per-market prices. Filter by category and brand. Clean JSON-LD, no proxy.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Rastriq — Structured data from the world
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract the complete product catalog of tienda-solar.es — Spain's specialist solar-energy store — as clean, structured data. Get solar panels, inverters, batteries, charge controllers, EV chargers, mounting structures and full kits, with per-market prices across the store's 6 language storefronts (Spanish, English, French, German, Italian, Portuguese).
Around 1,060 products per language (~6,360 records for the full run), scraped in a few minutes, with no browser and no proxy required.
Ideal for price monitoring, competitive intelligence, market research, catalog/PIM sync, reselling, and lead generation in the photovoltaic sector.
✨ Features
- Whole catalog or filtered — scrape everything, or only the categories and brands you care about.
- 6 languages with real per-market pricing — the same product can cost €934.96 on the German storefront and €1,150 on the Portuguese one. Capture each market separately.
- 35 product categories and 71 brands selectable from dropdowns (see lists below).
- Structured, normalized output — 22 fields per product, parsed from the site's
schema.orgJSON-LD, including SKU, MPN, GTIN, brand, price, currency, stock status and images. - Fast & cheap — pure HTTP with TLS impersonation, ~0.04 s per product page, 512 MB, no residential proxies, no CAPTCHA services.
- Stable across languages — categories resolved via the product's internal id, so a category filter returns the matching products in every selected language.
- Export anywhere — JSON, CSV, Excel, or via the Apify API and integrations.
📦 What you get — output fields
| Field | Type | Description |
|---|---|---|
url | string | Product page URL |
language | string | Storefront language (es, en, fr, de, it, pt) |
id_product | integer | Internal product id (stable across all languages) |
name | string | Product name |
sku | string | Stock keeping unit / reference |
mpn | string | Manufacturer part number |
gtin | string | GTIN/EAN barcode (when published) |
brand | string | Manufacturer / brand |
price | number | Price as published in JSON-LD |
currency | string | ISO currency code (EUR) |
availability | string | Normalized stock: in_stock, preorder, out_of_stock, … |
availability_raw | string | Raw schema.org availability URL |
price_valid_until | string | Price validity date |
condition | string | Item condition when published |
category | string | Localized breadcrumb path (product excluded) |
category_full | string | Full localized breadcrumb (product included) |
category_slug | string | Canonical Spanish category slug — matches the category filter |
description | string | Product description text |
image_main | string | Main image URL |
images | array | All image URLs |
image_count | integer | Number of images |
scraped_at | string | UTC extraction timestamp |
Example output (one record)
{"url": "https://tienda-solar.es/microinversores/1394-microinversor-enphase-iq7plus","language": "es","id_product": 1394,"name": "Microinversor ENPHASE IQ7PLUS","sku": "IQ7PLUS","mpn": "IQ7PLUS","gtin": "1514051410125","brand": "ENPHASE","price": 82.28,"currency": "EUR","availability": "preorder","price_valid_until": "2026-06-18","category": "Inversores Solares > Microinversores","category_slug": "microinversores","image_main": "https://cdn.tienda-solar.es/6755-home_default/microinversor-enphase-iq7plus.jpg","image_count": 1,"scraped_at": "2026-06-03T20:41:32Z"}
🚀 Quick start
- Leave Languages on Spanish and set Max products to
10. - Click Start.
- Open the Output tab and export as CSV / Excel / JSON.
To scrape the whole catalog, clear Max products and select the languages you need.
⚙️ Input
| Field | Description | Default |
|---|---|---|
| Languages | Which storefronts to scrape (es / en / fr / de / it / pt). | ["es"] |
| Max products | Cap across all selected languages and filters. Empty = everything. | prefill 10 |
| Categories | One or more of 35 categories (labels are English / Español + product count). Empty = all. | [] |
| Brands | One or more brands (select or type; case-insensitive). Empty = all. | [] |
| Max concurrency | Parallel page fetches. 8 is safe and fast. | 8 |
| Proxy configuration | Optional. Not required — enable only for very large jobs. | off |
Filters are language-independent and combine with AND. Selecting Microinverters + ENPHASE
with languages es, de returns ENPHASE microinverters on both the Spanish and German storefronts.
Example input
{"languages": ["es", "de"],"categories": ["microinversores", "inversores-hibridos"],"brands": ["ENPHASE", "Victron"],"maxProducts": 200}
🗂️ Categories (35)
Solar Inverters, Hybrid Inverters, Grid-Connected Inverters, Off-Grid Inverters, Microinverters, Inverter Chargers; Lithium / AGM / Gel / EFB / Lead-Carbon / Stationary batteries and Batteries (general); Solar Panels, Photovoltaic Panels; Charge Controllers & Solar Charge Controllers, Optimisers; Solar Kits, Balcony Kits, Mounting Structures; EV Chargers, Electrical Equipment, DC/DC Converters, UPS/SAI, Air Conditioning, Solar Water Heating, Solar Pumping, LED Lighting, Energy Efficiency, Accessories, and more. Each option in the dropdown shows the live product count.
🏷️ Brands (71)
Victron, Fronius, SolarEdge, SMA, GoodWe, Huawei, SolaXPower, Deye, Studer, Pylontech, BYD, ENPHASE, SUNGROW, Trina Solar, LONGi Solar, JA Solar, Jinko, Kostal, Growatt, Solis, FoxESS, APSystems, SAJ, Voltronic Power, Enersys, Trojan, Dyness, Tesla, LG, Canadian Solar, Wallbox, Ingeteam, Salicru, Morningstar, Victron, and many more — or type any brand name.
🔍 How it works
tienda-solar.es is a PrestaShop store protected by Cloudflare's managed challenge. That
challenge is TLS-fingerprint based and is satisfied by TLS impersonation alone (a Chrome
fingerprint via curl_cffi) — so this Actor needs no headless browser, no residential proxies and
no CAPTCHA solver. Every product page ships clean schema.org/Product + BreadcrumbList JSON-LD,
so the Actor:
- Reads each language sitemap (
/1_<lang>_0_sitemap.xml). - Keeps real product URLs (
/<category>/<id>-<slug>), excluding manufacturer/CMS pages. - Fetches each page with Chrome TLS impersonation (8 in parallel).
- Parses the JSON-LD into a normalized record, taking
id_productfrom the URL (the page HTML also lists cross-sell product ids, which are not the product itself).
📊 Performance & cost
| Metric | Value |
|---|---|
| Speed | ~0.04 s per product page (8 concurrent) |
| Full Spanish catalog (~1,060) | ~1 minute |
| All 6 languages (~6,360) | a few minutes |
| Memory | 512 MB |
| Proxy | none required |
A 10-product test run uses well under 0.01 compute units.
🔄 Integrations & scheduling
- Schedule daily/weekly runs from the Apify Console for automated price monitoring.
- Push results to Google Sheets, Supabase, a database, or a webhook via Apify integrations.
- Call the Actor and read the dataset through the Apify API from any stack.
Result views included: Overview, Pricing & stock, Media, and By category & brand.
⚠️ Limitations & notes
- Prices and availability reflect what the storefront publishes in JSON-LD and may differ from the final checkout price (taxes/shipping/login-based pricing are not computed).
gtinis only present when the store publishes it (not all products).- A few categories are generic buckets ("Misc Products", "Featured Products") where the store files products without a specific subcategory.
- Product counts shift as the store adds or removes items.
📜 Legal & responsible use
This Actor collects only publicly available catalog pages via the store's own sitemap and the structured data the store publishes for search engines; it does not log in, place orders, or access private data. You are responsible for using the data in compliance with the site's Terms of Service and applicable laws (including GDPR where relevant). Use reasonable rates and do not overload the source site.
❓ FAQ
Do I need a proxy? No. The site is reached with TLS impersonation from a single IP. Proxy is an optional advanced setting for very large jobs.
Why scrape multiple languages? Prices and product names are localized per market — multi-language runs capture true per-country pricing.
Can I get just one category or brand? Yes — use the Categories and Brands filters. They work together and across all selected languages.
What export formats are supported? JSON, CSV, Excel, JSONL, plus the Apify API and integrations.
🗒️ Changelog
- 0.2 — Category and brand filters (language-independent), bilingual category labels with counts,
category_slugfield, fixedid_product(now taken from the URL), excluded non-product pages. - 0.1 — Initial release: full 6-language catalog via sitemap + JSON-LD.