PricePulse Lite
Automated price monitoring that runs locally and emails you when prices drop
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.
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
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.
If you're a developer:
- Clone the repository from GitHub
- Create a virtual environment:
python3 -m venv venv && source venv/bin/activate - Install dependencies:
pip install -r requirements.txt && playwright install chromium - Create
.envwith your Gmail App Password - Edit
config.pywith your product URLs and target prices - Run manually:
python3 main.py - Set up cron:
crontab -eand 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 YouTechnical Architecture
- 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
- 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
- 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
- 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.
- 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.
- 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.
- Handoff β You test with real URLs. I fix anything that doesn't work. Final payment on delivery. Seven days of support included.
- 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.