Skip to content

luminati-io/coles-price-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coles Price Tracker

Bright Data Coles Price Tracker Python

Bright Insights Price Tracker

Real-time Coles price tracking - one of the two largest Australian supermarket chains. Two ways to get started: a fully managed intelligence platform or a custom scraper built with Bright Data's AI Scraper Builder.


Option 1: Bright Insights - AI-Powered Price Tracking (Recommended)

Bright Insights is Bright Data's fully managed retail intelligence platform. No scrapers to build, no infrastructure to maintain - just structured, analysis-ready price data delivered to dashboards, data feeds, or your BI tools.

Why teams choose Bright Insights:

  • 🚀 Zero setup - Go live in minutes with ready-to-use dashboards and data feeds
  • 🤖 AI-powered recommendations - A conversational AI assistant turns millions of data points into actionable insights instantly
  • Real-time monitoring - Hourly to daily refresh rates with instant alerts (email, Slack, webhook)
  • 🌍 Unlimited scale - Any website, any geography, any refresh frequency
  • 🔗 Plug-and-play integrations - AWS, GCP, Databricks, Snowflake, and more
  • 🛡️ Fully managed - Bright Data handles schema changes, site updates, and data quality automatically

Key use cases:

  • Track grocery price inflation across categories on Coles
  • Monitor promotions and weekly deals automatically
  • Build a price history database for basket analysis
  • ✅ Monitor MAP policy compliance and detect pricing violations
  • ✅ Track competitor promotions and promotional dynamics
  • ✅ Feed clean, harmonized data directly into dynamic pricing algorithms or AI models

Starting from $250/month - Get a tailored quote →


Option 2: Build Your Own Coles Scraper

No pre-built Coles scraper API? No problem. Bright Data's AI Scraper Builder generates a custom Coles scraper in just a few clicks — no coding required.

Build your Coles scraper in minutes

Open the Coles AI Scraper Builder →

Choose the domain, outline your data requirements, and let our AI scraper builder automatically create the API.

  1. Describe data needs in plain English
  2. AI instantly generates the scraper API
  3. Run API requests for immediate results
  4. Edit the code in the built-in IDE, if needed

Once built, your scraper gets a Web Scraper ID (gd_xxxxxxxxxxxx) — copy it for the Setup step below.

Prerequisites

Setup

  1. Clone this repository

    git clone https://github.com/luminati-io/coles-price-tracker.git
    cd coles-price-tracker
  2. Install dependencies

    pip install -r requirements.txt
  3. Configure credentials

    Copy .env.example to .env and fill in your values:

    cp .env.example .env
    BRIGHTDATA_API_TOKEN=your_api_token_here
    BRIGHTDATA_DATASET_ID=your_dataset_id_here

    Your Web Scraper ID Paste the Web Scraper ID from your AI Scraper Builder dashboard into BRIGHTDATA_DATASET_ID (format: gd_xxxxxxxxxxxx).


Usage

Once your Coles scraper is built and your Web Scraper ID is configured in .env, the Python interface works the same way:

1. Track Specific Products by URL

Pass a list of Coles product URLs to retrieve structured price data:

from price_tracker import track_prices

urls = [
    "https://www.coles.com.au/products/sample-product",
    # Add more product URLs here
]

results = track_prices(urls)
for item in results:
    print(f"{item.get('title')} - {item.get('final_price', item.get('price'))} {item.get('currency', '')}")

Or run directly:

python price_tracker.py

2. Discover Products by Keyword

Find products matching a keyword search:

from price_tracker import discover_by_keyword

results = discover_by_keyword("laptop", limit=50)

3. Browse Products by Category URL

Collect all products from a Coles category page:

from price_tracker import discover_by_category

results = discover_by_category(
    "https://coles.com.au/category/example",
    limit=100,
)

Output Fields

Each result record contains the following fields:

Field Description
url Product page URL
name Product name
brand Brand
price Current price
currency Currency code
unit_price Price per unit/weight
in_stock Stock status
category Product category
sku SKU / barcode
images Product image URLs
description Product description
timestamp Collection timestamp

Sample output

[
  {
    "url": "https://www.coles.com.au/products/sample-product",
    "title": "Example Product Name",
    "brand": "Example Brand",
    "initial_price": 59.99,
    "final_price": 44.99,
    "currency": "USD",
    "discount": "25%",
    "in_stock": true,
    "rating": 4.5,
    "reviews_count": 1234,
    "images": ["https://coles.com.au/images/product1.jpg"],
    "description": "Product description text...",
    "timestamp": "2025-01-15T10:30:00Z"
  }
]

Advanced Options

The trigger_collection() function accepts optional parameters to control data collection:

Parameter Type Default Description
limit integer - Maximum number of records to return
include_errors boolean true Include error reports in results
notify string (URL) - Webhook URL to call when the snapshot is ready
format string json Output format: json, csv, or ndjson

Example with options:

from price_tracker import trigger_collection, get_results

inputs = [{"url": "https://www.coles.com.au/products/sample-product"}]
snapshot_id = trigger_collection(inputs, limit=200, notify="https://your-webhook.com/hook")
results = get_results(snapshot_id)

Resources


Built with Bright Data - the industry-leading web data platform.

About

Track prices from Coles - AI-powered via Bright Insights or self-service via Bright Data's Web Scraper API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages