Skip to content

steelbot-francis/johnlewis-actor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Johnlewis Product Scraper

Johnlewis Product Scraper is a focused data extraction tool that collects structured product information from John Lewis product pages. It helps teams and developers turn product listings into clean, usable data for analysis, monitoring, and downstream systems.

Bitbash Banner

Telegram   WhatsApp   Gmail   Website

Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for johnlewis-actor you've just found your team — Let’s Chat. 👆👆

Introduction

This project extracts detailed product-level data from John Lewis product pages using a simple URL-based input. It solves the problem of manually collecting product details by automating structured data retrieval. It is designed for developers, analysts, and businesses that need consistent retail product data.

Product Page Data Collection

  • Accepts direct product page URLs as input
  • Extracts standardized product attributes from each page
  • Returns clean, structured JSON output
  • Designed for repeatable and scalable data runs

Features

Feature Description
URL-Based Input Collects product data from a list of provided product page URLs.
Structured Output Returns normalized JSON records for each product.
Core Product Fields Extracts name, price, image, description, and SKU.
Batch Processing Processes multiple product pages in a single run.
Data Consistency Ensures predictable field structure across products.

What Data This Scraper Extracts

Field Name Field Description
product_name The full name or title of the product.
product_price The listed price of the product.
product_image Direct URL to the main product image.
product_url The original URL of the product page.
description Detailed textual description of the product.
sku Unique stock keeping unit identifier.

Example Output

[
  {
    "product_name": "Oura Ring 4 Health & Fitness Tracker Smart Ring, Black",
    "product_price": "349.00",
    "product_image": "https://media.johnlewiscontent.com/i/JohnLewis/112562905",
    "product_url": "https://www.johnlewis.com/oura-ring-4-health-fitness-tracker-smart-ring-black/p112664179",
    "description": "Introducing Oura Ring 4: the latest evolution of the revolutionary smart ring...",
    "sku": "112562899"
  },
  {
    "product_name": "Oura Ring 4 Health & Fitness Tracker Smart Ring, Silver",
    "product_price": "349.00",
    "product_image": "https://media.johnlewiscontent.com/i/JohnLewis/112562967",
    "product_url": "https://www.johnlewis.com/oura-ring-4-health-fitness-tracker-smart-ring-silver/p112664239",
    "description": "Introducing Oura Ring 4: the latest evolution of the revolutionary smart ring...",
    "sku": "112562960"
  }
]

Directory Structure Tree

Johnlewis Actor/
├── src/
│   ├── main.py
│   ├── scraper/
│   │   ├── product_parser.py
│   │   └── validators.py
│   ├── utils/
│   │   └── http_client.py
│   └── config/
│       └── settings.example.json
├── data/
│   ├── input.sample.json
│   └── output.sample.json
├── requirements.txt
└── README.md

Use Cases

  • E-commerce analysts use it to collect product prices, so they can track pricing changes over time.
  • Retail data teams use it to build structured product catalogs, so they can feed analytics pipelines.
  • Market researchers use it to study product descriptions, so they can compare positioning across items.
  • Developers use it to automate product data ingestion, so they can integrate retail data into applications.

FAQs

Does this project support multiple product URLs at once? Yes, it accepts a list of product page URLs and processes them in a single execution.

What type of pages are supported? Only valid John Lewis product pages are supported. Non-product pages may return incomplete data.

Is the output format consistent across products? Yes, all products follow the same field structure for predictable downstream usage.

Can the data be extended with additional fields? The structure is designed to be extensible, allowing new product attributes to be added if needed.


Performance Benchmarks and Results

Primary Metric: Processes product pages with an average extraction time of 2–4 seconds per URL.

Reliability Metric: Maintains a high success rate when provided with valid product page URLs.

Efficiency Metric: Supports batch URL input to reduce repeated execution overhead.

Quality Metric: Delivers complete product records with consistent field coverage across runs.

Book a Call Watch on YouTube

Review 1

"Bitbash is a top-tier automation partner, innovative, reliable, and dedicated to delivering real results every time."

Nathan Pennington
Marketer
★★★★★

Review 2

"Bitbash delivers outstanding quality, speed, and professionalism, truly a team you can rely on."

Eliza
SEO Affiliate Expert
★★★★★

Review 3

"Exceptional results, clear communication, and flawless delivery.
Bitbash nailed it."

Syed
Digital Strategist
★★★★★

Releases

No releases published

Packages

 
 
 

Contributors