URL: coles.com.au
Method: Puppeteer + Infinite Scroll
Update: Wednesday 2AM AEST
URL: woolworths.com.au
Method: Puppeteer + Stealth
Update: Wednesday 2AM AEST
URL: igashop.com.au
Method: Enhanced Anti-Bot
Update: On-demand
ποΈ Database Schema
-- Products scraped from retailer websites
CREATE TABLE products_scraped (
id SERIAL PRIMARY KEY,
retailer_id INTEGER REFERENCES retailers(id),
product_name VARCHAR(255) NOT NULL,
brand VARCHAR(100),
regular_price DECIMAL(10,2) NOT NULL,
sale_price DECIMAL(10,2),
on_special BOOLEAN DEFAULT FALSE,
category VARCHAR(100),
scraped_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Price history tracking
CREATE TABLE price_history_scraped (
id SERIAL PRIMARY KEY,
product_scraped_id INTEGER REFERENCES products_scraped(id),
price DECIMAL(10,2) NOT NULL,
recorded_date TIMESTAMP NOT NULL
);
-- Scraping job monitoring
CREATE TABLE scraping_logs (
id SERIAL PRIMARY KEY,
retailer_id INTEGER REFERENCES retailers(id),
job_type VARCHAR(50) NOT NULL,
status VARCHAR(20) NOT NULL,
products_found INTEGER DEFAULT 0,
started_at TIMESTAMP,
completed_at TIMESTAMP
);
π Real-time Scraping Logs
Waiting for scrape to start...
// Real-time logs will appear here when scraping starts...
// Logs are streamed directly from the scraping service