PricePulse Lite

Automated price monitoring that runs locally and emails you when prices drop

View on GitHub Adapt This to Your Needs β†’

What This Project Does

PricePulse Lite checks product prices automatically using Playwright's headless Chromium browser. It visits each retailer URL you specify, extracts the current price, stores it in a local SQLite database, and sends you an email if the price drops below your target. It also sends a daily summary showing which retailer currently has the best price.

Add your product URLs to config.py, add your Gmail App Password to .env, set up a cron job (default: daily at 07:00), and it runs unattended. No subscription. No cloud service. No recurring cost.

See It in Action

Watch how PricePulse Lite uses headless Chromium to check prices, stores data in SQLite, and sends email alerts when prices drop below your target.

7 URLs
Retailer URLs
Configured in config.py
1
Per config.py
Across all retailers
Daily at 07:00
Check Schedule
Via cron job
SQLite
Local Storage
All data stays local

Key Features

  • Real Browser Automation β€” Uses Playwright's headless Chromium to scrape JavaScript-rendered prices
  • Robots.txt Compliance β€” Checks robots.txt before scraping any site
  • Price Drop Alerts β€” Sends email when current price falls below your target price
  • Daily Best-Price Summary β€” Morning email showing the cheapest retailer across all monitored URLs
  • Historical Tracking β€” Stores every price check in a local SQLite database
  • Error Logging β€” Records scraping failures with timestamps for debugging
  • Gmail Integration β€” Uses Gmail App Password for secure email delivery
  • Cron Automation β€” Runs unattended via cron job (daily at 07:00 by default)

Real-World Applications

Personal Shopping
Track a specific product across multiple retailers and buy when the price drops
Price Research
Build a historical dataset of how a product's price fluctuates across sites
Deal Hunting
Get notified the moment your target product hits your budget
Retail Arbitrage
Monitor price differences between retailers for resale opportunities

Want to Try It?

This tool is free and open-source. It runs locally on your computer and stores price history in a local SQLite database β€” your monitoring data never leaves your system.

Two Ways to Use This Tool:

If you're a developer:

  1. Clone the repository from GitHub
  2. Create a virtual environment: python3 -m venv venv && source venv/bin/activate
  3. Install dependencies: pip install -r requirements.txt && playwright install chromium
  4. Create .env with your Gmail App Password
  5. Edit config.py with your product URLs and target prices
  6. Run manually: python3 main.py
  7. Set up cron: crontab -e and add the daily schedule

If you're not a developer:

I can configure the scraping selectors for your specific retailers, set up the cron job, test the email alerts, and deliver a ready-to-run system with documentation.

Let Me Handle It For You

Technical Architecture

Core Components:
  • Playwright headless Chromium for browser automation
  • SQLite database for local price history storage
  • Gmail SMTP for email notifications (App Password required)
  • Robots.txt parser to check scraping permissions before each run
  • CSS selector logic in extractor.py for price extraction
What It Actually Does:
  • Checks 7 retailer URLs for 1 product (hair styling tool in the demo)
  • Runs once daily at 07:00 via cron job
  • Sends email if current price < target price
  • Sends daily summary with best current price across all retailers
  • Logs errors with timestamps for debugging
Deployment:
  • Runs locally on macOS/Linux
  • Automated via crontab
  • All data stored in local prices.db SQLite file
  • No cloud dependencies

How We'll Work Together

  1. Discovery β€” You tell me which products and retailers you want to monitor. I check if the sites are scrapeable and give you an honest timeline and cost estimate. No commitment needed.
  2. Scope β€” I send you a written scope: what gets built, what gets tested, when it ships, and what it costs. You approve it or we adjust until it fits.
  3. Build β€” I configure the CSS selectors for each retailer, set up the cron job, and test the email alerts end to end. You get progress updates every 2 to 3 days.
  4. Handoff β€” You test with real URLs. I fix anything that doesn't work. Final payment on delivery. Seven days of support included.
  5. You run it independently β€” The tool is yours. You have the code, the database, and the documentation. No dependency on me to keep it running.
Email Me Back to Projects