Wescover Artist & Product Scraper
Under maintenancePricing
from $5.00 / 1,000 results
Wescover Artist & Product Scraper
Under maintenanceScrape Wescover.com functional/decorative art and design products (materials, price range, and the real venue each piece is installed at) and maker/creator profiles, with built-in delta mode. No login required.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
wescover-scraper
Scrapes both products (functional/decorative art and design pieces โ furniture, tiles, lighting, textiles, and more, with materials, price range, and the real venue each piece is installed at) and maker/creator profiles from Wescover.com, a marketplace connecting independent makers with businesses and homeowners. No login required.
Contents
๐ Key features
- Two entity types, one Actor. Set
entityTypetoartworks(products) orartists(makers). - Real installation-venue data โ many products carry a
space(the actual business a piece is installed at: name, city/state/country, business type like "restaurant"). Not just who made it, but where it lives โ a genuinely different angle from a typical art-marketplace listing. - Choose which categories to include. Set
categoriesto one or more of the site's real top-level categories (Furniture, Tiles, Lighting, Textiles, and more) to filter the results, or leave it empty to include everything. - A real per-maker rollup with no extra fetch cost per product. A maker's own page reports
their complete product list and full bio/tags in one fetch โ
entityType: "artists"doesn't need to examine every product on the site to build this. - Real materials/color tags, production-time estimates, and a genuine "one of a kind" flag โ read from the same rich page data the site's own UI uses, not guessed from the description text.
- Delta mode built in. Every run classifies each item as
new,changed,unchanged, ordelistedagainst a persisted baseline โ pay for what changed, not a full re-scrape every time. - Confirmed-dead listings are never re-fetched. A removed product or maker silently redirects to a generic listing page rather than 404ing โ detected and tracked in a persisted registry so a future run skips it without a wasted request.
maxItemsdefaults to 50 โ a fast, cheap preview, and what keeps an unconfigured run within Apify's automated 5-minute QA check. Clear it (null) for a full crawl, or narrowcategoriesinstead.
๐ Output
One dataset item per product or maker, depending on entityType โ see
.actor/dataset_schema.json for the full field list.
Example product record:
{"source": "wescover","entity_type": "artworks","external_id": "PSyk5hgvpwQZ","url": "https://www.wescover.com/p/sun-tanned-poplar-tables-by-monkwood-studios-at-lord-stanley--PSyk5hgvpwQZ","name": "Sun Tanned Poplar Tables","category_path": "Furniture/Furniture/Tables","materials": ["wood"],"colors": ["brown"],"is_one_of_a_kind": true,"production_time_weeks_min": 12,"production_time_weeks_max": 20,"currency": "USD","price_min": 1500,"price_max": 3000,"status": "active","maker_name": "Monkwood Studios","maker_url": "https://www.wescover.com/creator/monkwood","maker_tags": ["reclaimed_materials", "handmade", "sustainable"],"space_name": "Lord Stanley","space_types": ["restaurant"],"space_location": "San Francisco, CA, United States","change_type": "new"}
Example maker record:
{"source": "wescover","entity_type": "artists","external_id": "MSk7X7gTBS","url": "https://www.wescover.com/creator/deco","name": "Deco","types": ["Tiles", "Architecture", "Wall Treatments"],"location": "Italy","is_claimed": true,"product_count": 13,"change_type": "new"}
๐ง Input
| Field | Type | Default | Description |
|---|---|---|---|
entityType | string | artworks | artworks (products) or artists (makers). |
categories | array | โ | Only include items matching one of these categories. A push-time filter โ the full site is still walked either way. Leave empty for everything. |
startUrls | array | โ | Specific product/maker URLs to scrape directly instead of the full sitemap. |
maxItems | integer | 50 | Stop after pushing this many items. Set to null for a full crawl. |
mode | string | auto | auto / full / incremental โ see Incremental mode. |
concurrency | integer | 5 | How many product/maker detail pages to fetch in parallel. Kept conservative โ see FAQ. |
impersonate | string | chrome | curl_cffi TLS-impersonation target. |
Residential proxy is used automatically for every run โ see FAQ below. It isn't an input option; there's no way to disable it.
๐ฅ Input examples
Default preview (50 products):
{ "entityType": "artworks" }
Every tile product:
{ "entityType": "artworks", "categories": ["tiles"], "maxItems": null }
Full maker directory:
{ "entityType": "artists", "maxItems": null }
๐ Incremental (delta) mode
auto mode does a full scan the first time it runs for a given entityType/scope, then only pushes
new/changed items on later runs โ including price and status changes (price_min/price_max/
status are the watched fields for products; product_count for makers). Only an uncapped run
using the same categories selection each time (no maxItems limit reached, no startUrls, no
item errors) can detect delistings or update the baseline.
โ FAQ
Why is concurrency only 5 by default?
A real, deliberate caution: while building this Actor, a short burst at higher concurrency produced
a cluster of HTTP 429s, and retrying immediately afterward made it noticeably worse (timeouts
instead of clean rejections). Detail pages tested clean at higher concurrency after a cooldown, but
5 is kept as a safety margin โ raise it carefully if you need more throughput.
Does categories scope the crawl to just that category (faster/cheaper)?
No โ it's a filter applied after fetching each item, not a way to skip the rest of the site. The
site's own category-browse pages carry a much stricter rate limit than individual product/maker
pages, so this Actor deliberately never uses them.
Why does a product sometimes have no space (installation venue)?
A real, honest gap โ not every product on the site is tied to a documented installation; some are
simply catalog items available for purchase. Nothing is guessed when the page itself has no venue
data.
Does this need a proxy? Yes โ Residential proxy is mandatory and always on, not an input you can toggle. A real large-scale run with no proxy hit a 429 storm severe enough to fail the whole run; Datacenter proxy (tried first as the cheaper tier) made it worse, since Cloudflare fingerprints datacenter IPs and returned instant 403s on ~95% of requests. Residential IPs read as ordinary ISP traffic and avoided both problems โ verified clean at 2,000 items, 0 errors.