John Lewis Products Details Crawler
Under maintenancePricing
from $5.00 / 1,000 results
John Lewis Products Details Crawler
Under maintenanceExtract full product details from John Lewis — prices, specs, images, descriptions, and weight-based cost addition — Automatically calls the John Lewis Listings Crawler to discover all variant URLs, then scrapes each one at speed using CheerioCrawler.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Alkausari M
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
An Apify Actor that scrapes full product details from John Lewis product pages. It supports two modes:
- Listings mode — provide category or brand page URLs and the actor automatically calls
alkausari_mujahid/john-lewis-products-listings-crawlerto collect all product URLs, then scrapes each one. - Direct mode — provide product page URLs directly and skip the listings scraper entirely. Useful for testing or scraping specific products.
How It Works
Listings Mode
Stage 1 — Listings Scraper (external actor call)┌─────────────────────────────────────────────────┐│ alkausari_mujahid/john-lewis-products- ││ listings-crawler ││ ││ Input: startUrls (category/brand pages) ││ lastPageNum (how many pages to crawl) ││ ││ Output: dataset of product URLs │└─────────────────────────────────────────────────┘││ waits for completion, reads dataset▼Stage 2 — Details Scraper (this actor)┌─────────────────────────────────────────────────┐│ Visits each product URL via CheerioCrawler ││ ││ For products with size variants: ││ → visits each size URL separately ││ → scrapes each size as a separate item ││ ││ Extracts: name, brand, color, size, price, ││ stock, images, specs, description, breadcrumbs ││ ││ Output: Apify Dataset (one item per variant) │└─────────────────────────────────────────────────┘
Direct Mode
Provide product page URLs directly via Detail Page URLs — the listings scraper is skipped and no Apify Token or Actor ID is needed. The actor goes straight to scraping the product pages you supply.
Size Variant Handling
John Lewis products with multiple sizes (e.g. clothing, shoes) each have their own URL. When a product page with a size selector is detected, the actor visits every size URL individually and scrapes each as a separate dataset item — so each row in the output represents one specific product + color + size combination.
Input
Listings Mode fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
listingsUrls | Array of URLs | ✅ (listings) | — | Category or brand listing pages (e.g. https://www.johnlewis.com/brand/adidas/_/N-1z0nbgj) |
apifyToken | String (secret) | ✅ (listings) | — | Your Apify API token — used to call the listings scraper |
actorID | String | ✅ (listings) | — | The Actor ID of alkausari_mujahid/john-lewis-products-listings-crawler |
lastPageNum | Integer | — | 1 | How many listing pages to crawl per start URL |
Shared fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
pricePerKG | Integer | — | 5 | Per-kg surcharge (£) added to products that have a weight in their spec sheet |
maxRequestsPerCrawl | Integer | — | 200 | Safety cap on total requests made by this actor's crawler |
proxyConfiguration | Object | — | Apify RESIDENTIAL | Proxy settings — passed to both this crawler and the listings scraper |
Direct Mode fields
| Field | Type | Required | Description |
|---|---|---|---|
detailUrls | Array of URLs | ✅ (direct) | John Lewis product page URLs to scrape directly — no listings scraper needed |
Example — Listings Mode
{"listingsUrls": [{ "url": "https://www.johnlewis.com/brand/kickers/_/N-1z13v2d" }],"apifyToken": "apify_api_xxxxxxxxxxxxxxxxxxxx","actorID": "RV0aFMn9KG7GmWW8B","lastPageNum": 5,"pricePerKG": 9,"maxRequestsPerCrawl": 1000,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example — Direct Mode
{"detailUrls": [{ "url": "https://www.johnlewis.com/kickers-kick-hi-leather-boots/p238795771" },{ "url": "https://www.johnlewis.com/adidas-kids-hoodie/p113525135" }],"pricePerKG": 9,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
Each item in the dataset represents one product variant (a unique combination of product + color + size).
Example Output Item
{"type": "product","name": "Kickers Kick Hi Leather Boots","brand": "Kickers","color": "Black","size": "5","stockStatus": "In Stock","currentPrice": "£110.00","previousPrice": null,"weightPrice": "£3.15","finalPrice": 113.15,"promotions": ["Buy one, get one 50% off"],"reviewsCount": "124 Reviews","reviewsStars": "4.5 out of 5 stars","mainImage": "https://johnlewis.scene7.com/is/image/JohnLewis/...","images": [{ "mediaContentType": "IMAGE", "originalSource": "https://..." }],"breadcrumbs": ["Home", "Women", "Shoes & Boots", "Ankle Boots"],"categoryPath": "Home > Women > Shoes & Boots > Ankle Boots","mainCategory": "Women","subCategory": "Shoes & Boots","productId": "238795771","productCode": "86064111","specifications": {"material": "Leather upper","sole": "Rubber","weight": "350g"},"weight": { "unit": "kg", "value": 0.35 },"url": "https://www.johnlewis.com/kickers-kick-hi-leather-boots/p238795771","scrapedAt": "2026-05-08T10:23:45.000Z"}
Prerequisites
All modes:
- An Apify account with access to residential proxies
Listings mode only:
- The listings scraper deployed in your account:
alkausari_mujahid/john-lewis-products-listings-crawler - Your Apify API token from Console → Settings → Integrations
- The Actor ID of the listings scraper (visible in the actor's URL and Settings tab)