Tienda Solar Catalog Scraper avatar

Tienda Solar Catalog Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Tienda Solar Catalog Scraper

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

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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.org JSON-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

FieldTypeDescription
urlstringProduct page URL
languagestringStorefront language (es, en, fr, de, it, pt)
id_productintegerInternal product id (stable across all languages)
namestringProduct name
skustringStock keeping unit / reference
mpnstringManufacturer part number
gtinstringGTIN/EAN barcode (when published)
brandstringManufacturer / brand
pricenumberPrice as published in JSON-LD
currencystringISO currency code (EUR)
availabilitystringNormalized stock: in_stock, preorder, out_of_stock, …
availability_rawstringRaw schema.org availability URL
price_valid_untilstringPrice validity date
conditionstringItem condition when published
categorystringLocalized breadcrumb path (product excluded)
category_fullstringFull localized breadcrumb (product included)
category_slugstringCanonical Spanish category slug — matches the category filter
descriptionstringProduct description text
image_mainstringMain image URL
imagesarrayAll image URLs
image_countintegerNumber of images
scraped_atstringUTC 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

  1. Leave Languages on Spanish and set Max products to 10.
  2. Click Start.
  3. 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

FieldDescriptionDefault
LanguagesWhich storefronts to scrape (es / en / fr / de / it / pt).["es"]
Max productsCap across all selected languages and filters. Empty = everything.prefill 10
CategoriesOne or more of 35 categories (labels are English / Español + product count). Empty = all.[]
BrandsOne or more brands (select or type; case-insensitive). Empty = all.[]
Max concurrencyParallel page fetches. 8 is safe and fast.8
Proxy configurationOptional. 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:

  1. Reads each language sitemap (/1_<lang>_0_sitemap.xml).
  2. Keeps real product URLs (/<category>/<id>-<slug>), excluding manufacturer/CMS pages.
  3. Fetches each page with Chrome TLS impersonation (8 in parallel).
  4. Parses the JSON-LD into a normalized record, taking id_product from the URL (the page HTML also lists cross-sell product ids, which are not the product itself).

📊 Performance & cost

MetricValue
Speed~0.04 s per product page (8 concurrent)
Full Spanish catalog (~1,060)~1 minute
All 6 languages (~6,360)a few minutes
Memory512 MB
Proxynone 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).
  • gtin is 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.

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_slug field, fixed id_product (now taken from the URL), excluded non-product pages.
  • 0.1 — Initial release: full 6-language catalog via sitemap + JSON-LD.