Podrygka.ru scraper
Pricing
from $10.00 / 1,000 results
Podrygka.ru scraper
Read the Podrygka (Подружка) beauty catalogue: article, brand, price, stock, rating and review count for every product, with optional discounts — plus alerts when a price moves, an item returns to stock or drops out of the catalogue.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Sasha Ebashu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Podrygka Price & Stock Monitor — Подружка Catalogue
Podrygka (Подружка) is one of Russia's largest beauty chains. This Actor reads its catalogue — article number, name, brand, price, stock, rating and review count for every product — and tells you when a price moves, an item comes back into stock, or an article drops out of the range entirely.
No key, no login, and no proxy needed.
Where the data actually is
The catalogue is a Next.js app-router page, and its prices are not in the markup: the rendered HTML carries no price attribute at all. The product data arrives inside the page's streamed data chunks as schema.org objects, which is where this Actor reads it. That is why one category page yields twenty complete products — article, brand, price, availability, rating, review count, images and description — without opening a single product page.
The difference matters for cost. A product page on this shop weighs two megabytes; the listing that describes twenty of them weighs one.
Measured: 1,000 products in 45 seconds across 16 categories and 160 brands.
What you get per product
| Identity | Article number (sku), name, brand, link, category |
| Price | Current price and currency; optionally the old price and the discount |
| Stock | In stock, out of stock, or genuinely unknown — the three are kept apart |
| Reputation | Rating and the number of reviews behind it |
| Media | First image and how many the product has |
Monitor mode
Run it on a schedule and get only what moved.
changeType | Means |
|---|---|
price_drop / price_rise | The price moved, with the old figure, the difference and the percentage |
back_in_stock | It was out of stock last run and is available now |
out_of_stock | The reverse |
new_reviews | Customers reviewed it since the last run, with how many |
no_longer_listed | The article was in the catalogue last run and is not in this one |
new, unchanged | First sighting / nothing moved |
no_longer_listed is only raised after a run that could actually have found the product. Three
conditions must hold together: whole-catalogue mode is on, the run covered all 249 categories the
shop lists, and nothing was cut short — no failed page, no time limit, no product or cost cap. When
any of them fails the Actor says so in the log and raises nothing, because a delisting claim from a
partial run is a guess. An earlier version checked only that the flag was switched on, and promptly
declared fifteen perfectly ordinary products delisted after reading 3 categories out of 249.
Notes & limits
Properties of the source, measured rather than assumed:
- Pagination is
?PAGEN_1=N.?page=,?p=and/page-2/are all accepted by the server and all silently return page one — a scraper trusting them would report the same twenty products forever. Past the last page the shop repeats the previous one rather than returning nothing, so the walk ends when a page brings no new article numbers. - Every product is published twice in the page data. Counting without de-duplicating makes a category look twice as full as it is.
- A failed page is not the end of a category. It stops the walk, marks the category incomplete, and blocks the delisting alert for that run.
- The old price is not in the listing. It exists only on the product page, so discounts are off by default; switching them on costs one two-megabyte page per product.
- A product page carries several price pairs, not one. One measured page held nine, belonging to two different products because the recommendations block brings its own. Pairing this product's price with a neighbour's old price produced a 48% discount that did not exist, so only the pair whose current price matches the catalogue price is used — and when no pair matches, nothing is reported rather than guessed.
- Availability is read from the shop's own schema.org term. Anything that is neither
InStocknorOutOfStockis reported as unknown, not as "out of stock". - No proxy needed, and it costs time. The same ten-page walk took 27 seconds direct and 143 through a proxy, and the shop serves Apify's machines without complaint. The proxy stays available for long catalogue runs; if the shop starts asking the run to slow down, the log says so.
- The Actor honours your Maximum cost per run and stops when the cap is reached.
Input
| Field | What it does |
|---|---|
| Categories | Category pages to read. Leave empty to take them from the shop's own sitemap. |
| Scan the whole catalogue / Maximum categories | Read every category the shop lists — required for the delisting alert. |
| Pages per category | Twenty products per page, about a megabyte each. The main cost dial. |
| Brands / Minimum price / Maximum price / In stock only | Filters, applied before anything is written. |
| Include the old price and discount | One product page per product. For a shortlist, not a catalogue. |
| Monitor mode / Output only changes | The alert behaviour above. |