Russkiy Svet (rs24.ru) Electrical Equipment Scraper
Pricing
from $3.00 / 1,000 results
Russkiy Svet (rs24.ru) Electrical Equipment Scraper
Scrape rs24.ru (Русский Свет) - a major Russian B2B electrical-equipment distributor with ~850,000 SKUs. Search products, browse categories, and fetch full product details: prices, specifications, brands, images, stock status.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape rs24.ru — the online storefront of "Русский Свет" (Russkiy Svet), one of Russia's largest electrical-equipment distributors with roughly 850,000 SKUs across 2,000+ categories and 178 branches in Russia, Belarus, Kazakhstan, and the wider CIS. Search products, browse any category, or fetch rich product detail pages including specifications, brand, SKU, images, and stock status.
What this actor does
- Three modes:
search,byCategory,productDetails - Free-text product search across the entire rs24.ru catalog
- Category browsing with automatic pagination — follows the "next page" link rs24.ru's own catalog UI renders, so it keeps working across the site's actual page count rather than a guessed page-size
- Full product detail extraction — price, brand, SKU, specifications table, full image gallery, breadcrumb category path (with clickable category URLs), rating
- Per-branch regional stock — live warehouse quantities across rs24.ru's branch network (product detail mode)
- Related / similar products — the "you may also like" widget on a product page, when rs24.ru renders one (product detail mode)
- Prices normalized from Russian formatting (
1 124,84 руб.) into clean numeric values with currency - Empty fields are omitted — every record only contains fields that were actually found on the page
Output per product
productId— numeric rs24.ru product IDtitleprice,oldPrice,currency— normalized numeric price in RUB. Always populated inproductDetailsmode (via the page's own schema.org JSON-LD) and typically populated inbyCategorymode.searchmode listing cards frequently omit price/brand/availability text entirely (observed live: 0/8 on a representativeлампаsearch run, vs. 6/6 populated on abyCategoryrun for the same site) — rs24.ru's/search.htmresults template renders differently from its/catalog/category template. If your workflow needs price, preferbyCategoryfor browsing or follow upsearchresults withproductDetailscalls.brand— samesearch-mode caveat aspriceabovesku— manufacturer article/SKU (product detail mode)description(product detail mode)specifications— key/value technical specification table (product detail mode)categoryPath— breadcrumb trail as text, e.g.Розетки / Компьютерные розетки(product detail mode)categoryBreadcrumbs[]— the same trail as structured{name, url}entries, so you can re-crawl the category tree (product detail mode)imageUrl,images[](product detail mode returns the full gallery; search/category return the card thumbnail)availability— stock status text as shown on the page (product detail mode; rarely present onsearch-mode cards — see thepricenote above)stockByBranch[]— per-branch warehouse quantities,{branch, quantity}(product detail mode, when rs24.ru's internal warehouse-list endpoint responds)totalStock— sum ofstockByBranch[].quantityacross all branches (product detail mode, only when every branch reported a numeric quantity)relatedProducts[]—{productId, url, title}entries from the page's own "similar/related products" widget, when rs24.ru rendered one (product detail mode)rating,reviewCount(when present)url— canonical product page URLrecordType: "product",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byCategory / productDetails |
searchQuery | string | розетка | Free-text query (mode=search) |
categoryUrls | array | – | rs24.ru category page URLs (mode=byCategory) |
productUrls | array | – | Product page URLs or bare numeric IDs (mode=productDetails) |
maxItems | int | 10 | Hard cap on emitted records (1–500) |
proxyConfiguration | object | RESIDENTIAL | Required. Apify residential proxy to pass rs24.ru's WAF challenge |
Example: search for cables
{"mode": "search","searchQuery": "кабель","maxItems": 20,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example: browse a category
{"mode": "byCategory","categoryUrls": ["https://rs24.ru/catalog/rozetka-mednaya-kommunikatsionnaya-vitaya-para-2239"],"maxItems": 50,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example: fetch specific product pages
{"mode": "productDetails","productUrls": ["https://rs24.ru/product/66065", "2168098"],"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Use cases
- Price monitoring — track electrical-equipment pricing across brands and SKUs
- Procurement & sourcing — build a catalog of available electrical components for B2B purchasing
- Market research — analyze category breadth and brand assortment of a major Russian electrical distributor
- Catalog enrichment — pull structured specifications and images into your own product database
- Competitive intelligence — compare stock availability and pricing against other electrical suppliers
Other Russian marketplace actors by CrawlerBros
FAQ
Is this affiliated with rs24.ru or Русский Свет? No. This is an independent, third-party scraper that reads publicly available pages on rs24.ru.
Why is residential proxy required?
rs24.ru's pages are protected by an Ngenix Web Application Firewall, which issues a JavaScript proof-of-work challenge to every visitor. Datacenter IPs get an HTTP 503 challenge followed by a hard HTTP 403 block page ("Доступ временно ограничен" — "Access temporarily restricted"). Residential IPs pass the challenge reliably, which is why proxyConfiguration is a required input, pre-set to the RESIDENTIAL group. The actor fails fast without a residential proxy configured.
Why do some products have no sku, specifications, or images?
Those fields are only populated when they are present on the given page. Search/category results are lighter cards than full product pages — use mode=productDetails for the richest data.
What currency are prices in? Russian rubles (RUB). rs24.ru does not publish other currencies.
Why do some products have no stockByBranch or totalStock?
These come from rs24.ru's internal per-branch warehouse-quantity endpoint, fetched only in mode=productDetails. If that endpoint returns no data for a given product (e.g. a discontinued SKU), the fields are simply omitted rather than filled with a guess.
Why is maxItems capped at 500?
Each page requires a full browser render through a residential proxy to pass the WAF challenge, which is materially slower and more resource-intensive than a plain HTTP request. 500 keeps runs reliable within a reasonable time budget.
Why do some products have no relatedProducts?
Only populated in mode=productDetails when rs24.ru actually rendered a "similar/related products" widget on that specific product page — not every page has one, and the field is omitted rather than guessed when it's absent.
Why did my byCategory category URL return 0 items?
rs24.ru's catalog has both broad "hub" categories (e.g. /catalog/rozetki-22) that only render subcategory tiles with no products of their own, and leaf categories (e.g. /catalog/rozetka-mednaya-kommunikatsionnaya-vitaya-para-2239) that render the actual product grid. Pass a leaf category URL — find one via a product's categoryBreadcrumbs[] (from mode=productDetails) or by clicking through rs24.ru's own category tree until the page shows products.
Does this work for the Belarus/Kazakhstan branches? The scraper reads the main rs24.ru catalog, which serves the full CIS-wide product range from a single storefront.
How fresh is the data? Every run fetches live pages at request time — prices and stock status reflect what rs24.ru shows at that moment.