John Lewis Electricals Scraper
Pricing
from $3.00 / 1,000 results
John Lewis Electricals Scraper
Scrape John Lewis & Partners - a leading UK department-store retailer's electronics catalog. Browse laptops, desktop PCs, TVs, tablets, headphones, and games consoles with live prices, brand, and product images.
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
11 days ago
Last modified
Categories
Share
Scrape John Lewis & Partners — one of the UK's best-known department-store retailers — for live electronics and appliance pricing. Browse laptops, desktop PCs, monitors, tablets, TVs, headphones, speakers, soundbars, games consoles, mobile phones, smart watches, printers, coffee machines, and kitchen appliances (ovens, hobs, fridges, freezers, washing machines, tumble dryers), or fetch specific product URLs directly with full detail-page data (rating, reviews, description, availability, colour, dimensions, and more). No login, no API key, no cookies required.
What this actor does
- Two modes:
byCategory(browse a category listing) andbyUrls(fetch exact product URLs, always with full detail) - 39 built-in categories: Laptops & MacBooks, Desktop PCs, iPads & Tablets, Televisions, Headphones, Games Consoles, Built-in Ovens (Double/Single), Range Cookers, Electric/Induction Hobs, Fridges, Freezers, Washing Machines, Tumble Dryers, Monitors, Printers, Mobile Phones, Smart Watches, Coffee Machines, Soundbars, Speakers, Vacuum Cleaners, Microwaves, Cameras, Dishwashers, Air Conditioners, Air Purifiers, Dehumidifiers, Fans, Kettles, Irons & Steamers, Food Processors/Mixers/Blenders, Projectors, Smart Heating, Smart Lighting, Hi-Fi Systems & CD Players, Turntables, Radios
- Optional full product-detail enrichment (
fetchProductDetail) — visits each listing's product page for description, availability, colour, weight, model number, MPN, guarantee, full technical specifications, delivery options, and extra images - Filters: brand (contains match), min/max price (GBP — applied server-side on mode=byCategory via John Lewis's own price facet when both bounds are given, plus a post-filter safety net), minimum rating (always available, no detail fetch needed), in-stock only (server-side facet, mode=byCategory), New In only (server-side facet, mode=byCategory), on-sale only (was/now price post-filter), on-offer only (server-side facet, mode=byCategory, covers every active promotion type — not just price markdowns)
- Live data: everything scraped fresh on every run
- Robots.txt compliant — johnlewis.com's
robots.txtdisallows/search*; this actor only scrapes/browse/.../_/N-*category pages and individual product pages, both explicitly allowed - Empty fields are omitted — every record only contains fields that were actually found on the page
Output per product
Listing mode always includes: productId, title, brand, price, currency (GBP), rating, reviewCount, productUrl, imageUrl, category, recordType: "product", scrapedAt. rating/reviewCount are scraped straight from the listing card and are omitted only for products with no reviews yet. When a product is currently marked down, the record also includes wasPrice (the pre-discount price), onSale: true, and discountAmount (the £ amount saved) — all scraped directly from the listing card's "was/now" price and "Save £X" badge, so they're available in every mode without needing fetchProductDetail.
With fetchProductDetail on (or always for mode=byUrls), records additionally include when available:
| Field | Description |
|---|---|
ratingPercentage | Rating expressed as a percentage (detail page only) |
description | Full product description (HTML stripped) |
availability | InStock or OutOfStock |
color | Product colour/finish |
weight | Unpackaged product weight |
modelNumber | Manufacturer model name/number |
mpn | Manufacturer part number |
sku | John Lewis SKU/stock code |
guarantee | Included guarantee terms (e.g. "2 year guarantee included") |
imageUrls | Up to 10 product images |
categoryPath | Full breadcrumb category path |
specifications | Full technical spec sheet as [{name, value}] (e.g. RAM, battery life, screen resolution) — varies per product, often 20-50+ rows |
deliveryOptions | Every delivery/collection method offered for this product as [{name, price}] (e.g. Standard Delivery, Click & Collect, Next Day Delivery) |
eligibleForTradeIn | Whether John Lewis currently accepts a trade-in device toward this product (mobile phones, some laptops) |
promotionalMessages | Currently-active promo banner titles for this product (e.g. "Save £100", "2 year guarantee included") |
videoUrl | Direct MP4 product video URL, when John Lewis has one for this product |
otherVariants | Other colour/finish options of the same product as [{name, productUrl}], excluding the variant already returned |
With fetchReviews on (any mode), records additionally include:
| Field | Description |
|---|---|
topReviews | Up to 10 real customer reviews as [{title, text, rating, author, location, date, isVerifiedBuyer}], pulled from johnlewis.com's own ratings-reviews service — not just the aggregate rating/reviewCount, but actual review text |
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | byCategory | byCategory or byUrls |
category | string | laptops-macbooks | Category to browse (mode=byCategory; see list below) |
productUrls | array | – | Exact product URLs (mode=byUrls) |
sortBy | string | relevance | Listing sort order: relevance, priceLow, priceHigh, new, popularity, discount (mode=byCategory) |
fetchProductDetail | boolean | false | Enrich each listing record with full product-page data (mode=byCategory) |
brand | string | – | Only keep products whose brand contains this text |
minPrice / maxPrice | integer | – | GBP price range. When BOTH are set on mode=byCategory, applied server-side via John Lewis's own price facet (narrows the source listing); a one-sided range (only minPrice or only maxPrice) is enforced as a post-filter only. Always enforced as a post-filter safety net regardless |
minRating | integer | 0 | Minimum star rating (0-5); always enforceable, no detail fetch needed |
inStockOnly | boolean | false | Only keep in-stock products; applied server-side on mode=byCategory via John Lewis's own "Show in stock items only" facet (no detail fetch needed), enforced from the live detail page on mode=byUrls |
newInOnly | boolean | false | Only keep products flagged "New In"; applied server-side on mode=byCategory via John Lewis's own "New In" facet (not applicable to mode=byUrls) |
onSaleOnly | boolean | false | Only keep products currently marked down; enforceable in every mode, no detail fetch needed. Not a server-side facet on mode=byCategory (johnlewis.com has no dedicated "on sale" URL facet), so it's applied as a post-filter against the fetched listing snapshot(s); the actor fetches up to 5 listing snapshots when this or minRating/brand is combined with a small category (John Lewis's own Akamai-fronted listing page returns a genuinely different card subset per fetch — a small number of on-sale items in a small category can occasionally still be missed under some sortBy values due to that upstream variance) |
onOfferOnly | boolean | false | Only keep products in John Lewis's own "On Offer" promotion; applied server-side via John Lewis's own facet on mode=byCategory (covers price markdowns, bundled gifts, and finance offers — broader than onSaleOnly) |
fetchReviews | boolean | false | Fetch up to 10 real customer reviews (text, rating, reviewer, date) per product; works in every mode, one extra request per product |
maxItems | integer | 50 | Hard cap on emitted records |
Example: browse a category with full product detail
{"mode": "byCategory","category": "laptops-macbooks","brand": "HP","fetchProductDetail": true,"minRating": 4,"maxItems": 50}
Example: fetch specific products by URL
{"mode": "byUrls","productUrls": ["https://www.johnlewis.com/hp-14-ep0021na-laptop-intel-core-i7-processor-8gb-ram-512gb-ssd-14-full-hd-natural-silver/p115160491"]}
Example: find on-sale washing machines with reviews
{"mode": "byCategory","category": "washing-machines","onSaleOnly": true,"fetchReviews": true,"maxItems": 30}
Example: in-stock, highly rated televisions under £800
{"mode": "byCategory","category": "televisions","maxPrice": 800,"minRating": 4,"inStockOnly": true,"maxItems": 40}
Use cases
- Price monitoring — track live prices, discounts, and stock status for electronics/appliance SKUs across runs.
- Competitive intelligence — compare brand mix, pricing, and promotions against other UK electronics retailers.
- Deal aggregation — surface currently on-sale or on-offer products across categories for a deals site or newsletter.
- Product research — pull full specifications, reviews, and delivery options before purchasing decisions.
- Catalog enrichment — merge John Lewis pricing/availability/specs into an existing product database by URL.
Categories available
- Laptops & MacBooks (
laptops-macbooks) - Desktop PCs (
desktop-pcs) - iPads & Tablets (
ipad-tablets) - Televisions (
televisions) - Headphones (
headphones) - Games Consoles (
games-consoles) - Built-in Ovens, Double (
built-in-ovens-double) - Built-in Ovens, Single (
built-in-ovens-single) - Range Cookers (
range-cookers) - Electric Hobs (
electric-hobs) - Induction Hobs (
induction-hobs) - Fridges (
fridges) - Freezers (
freezers) - Washing Machines (
washing-machines) - Tumble Dryers (
tumble-dryers) - Monitors (
monitors) - Printers (
printers) - Mobile Phones (
mobile-phones) - Smart Watches (
smart-watches) - Coffee Machines (
coffee-machines) - Soundbars (
soundbars) - Speakers (
speakers) - Vacuum Cleaners (
vacuum-cleaners) - Microwaves (
microwaves) - Cameras (
cameras) - Dishwashers (
dishwashers) - Air Conditioners (
air-conditioners) - Air Purifiers (
air-purifiers) - Dehumidifiers (
dehumidifiers) - Fans (
fans) - Kettles (
kettles) - Irons & Steamers (
irons) - Food Processors, Mixers & Blenders (
food-processors-blenders) - Projectors (
projectors) - Smart Heating (
smart-heating) - Smart Lighting (
smart-lighting) - Hi-Fi Systems & CD Players (
hi-fi-systems) - Turntables (
turntables) - Radios (
radios)
Notes
- Each category page is scraped as it renders on the site (no deep pagination); category "view all" pages typically return 20-73 products in a single page load. johnlewis.com's CDN occasionally serves a smaller snapshot of the same category page on a given request (observed varying between ~40-60 cards for the same category+sort combination); the actor automatically re-fetches the listing through a fresh proxy session up to twice more and merges in any additional products found, converging toward the fuller catalog rather than a partial one, though exact counts can still vary slightly run to run for high-traffic categories.
- Prices are shown in GBP as listed on johnlewis.com.
- If a page fails to load, the actor automatically retries with backoff and, as a last resort, falls back to the free Apify datacenter proxy (AUTO group) — no residential proxy or paid add-ons required.
FAQs
Do I need an account or API key? No. This actor scrapes publicly available category listing and product-detail pages.
Why is there no free-text search mode?
johnlewis.com's robots.txt disallows crawling /search*. This actor respects that and only scrapes the explicitly allowed /browse/.../_/N-* category pages and individual product pages instead.
Why are some fields missing on some products?
Only fields that were actually present on the page are included in each record. Turn on fetchProductDetail for the fullest set of fields per record.
Does inStockOnly narrow my results in byCategory mode?
Yes — it's applied server-side via John Lewis's own "Show in stock items only" facet, so it narrows the source listing directly and doesn't require fetchProductDetail. minRating similarly works in every mode — rating and review count are scraped directly from the listing card.
Why does a plain curl/script request to a productUrl hang or time out, even though it opens fine in a browser?
productUrl values are real, valid links. johnlewis.com runs Akamai Bot Manager, which silently stalls (rather than rejects) plain scripted requests from datacenter IPs that lack a full browser TLS/JA3 fingerprint — this is johnlewis.com's own anti-bot behavior, not a broken link. The actor itself uses Chrome TLS impersonation to get through; imageUrl links (served from a separate CDN) are unaffected and load normally with any client.