Monitor for Microcenter's Bundles Page
| .gitignore | ||
| email_config_sample.json | ||
| microcenter_monitor.py | ||
| README.md | ||
| watchlist_sample.json | ||
Microcenter-Monitor
Monitors the Microcenter AMD Bundle & Save page for price drops on AMD CPU bundles and sends alerts via email and/or desktop notifications when a bundle hits your target price.
Features
- Dynamic Watchlist: Track any CPU by adding it to
watchlist.json. The script automatically detects bundles matching your keywords. - SQLite History: Every price check is logged to a local database (
mc_bundle_history.db), allowing for long-term price tracking. - Smart Alerts: Notifications are only sent when a price drops to or below your target and has changed since the last check, preventing alert fatigue.
- History Reporting: Generate and email CSV reports of price trends using the
--reportflag. - Anti-Detection: Uses
curl_cffiwith Chrome TLS impersonation to bypass bot detection.
Requirements
- Python 3.10+
curl_cffi— Chrome TLS impersonationbeautifulsoup4— HTML parsingplyer— Desktop notifications (optional)
Installation & Setup
- Clone the repository
- Set up a virtual environment
python3 -m venv .venv source .venv/bin/activate pip install curl_cffi beautifulsoup4 plyer - Configure the monitor
The configuration files are not tracked in git for security. Copy the sample files to create your own:
cp watchlist_sample.json watchlist.json cp email_config_sample.json email_config.json - Edit your configurations
watchlist.json: Set target prices for CPU models (e.g.,"9800X3D": 600.00).email_config.json: Enter your SMTP server details and credentials.
Usage
Run Monitor
Check current prices and trigger alerts:
python3 microcenter_monitor.py
Generate Reports
Export price history to a CSV file and email it as an attachment:
# Full history
python3 microcenter_monitor.py --report all
# Last 30 days
python3 microcenter_monitor.py --report 30d
# Last year
python3 microcenter_monitor.py --report 365d
Automation
To run the monitor every 30 minutes, add it to your crontab:
*/30 * * * * /path/to/your/.venv/bin/python3 /path/to/microcenter_monitor.py >> ~/mc_monitor.log 2>&1