CASE STUDY · AUTOMATION & WEB MONITORING
Web Change Monitor
A configurable Python monitoring system that follows selected web-page elements, supports both static and JavaScript-rendered content, and preserves a searchable record of detected changes.
Replacing repetitive page checks with a focused monitoring workflow.
Important information may be buried inside pages that change without notice. Manually revisiting those pages is repetitive, and comparing complete page snapshots creates noise when only one price, status, headline, or availability field matters.
Web Change Monitor tracks a specific page element through its CSS selector. Each monitor stores its page, selector, rendering method, latest value, and change history so future checks can focus on the exact information that matters.
The result is a reusable command-line workflow for registering targets, checking current values, detecting updates, reviewing history, and managing monitored pages.
Two collection paths for different kinds of web content.
Requests and Beautiful Soup provide a lightweight path for server-rendered pages. When a target value appears only after JavaScript execution, Playwright opens a real browser context and waits for the selected element.
URLs and CSS selectors are validated before a monitor is saved. Connection failures, invalid inputs, and missing elements are handled without corrupting stored monitoring data.
- Requests and Beautiful Soup for static pages
- Playwright for JavaScript-rendered pages
- Pre-save URL and selector validation
- Persistent monitor configuration in SQLite
- Structured activity and error logging
Change detection with persistent context and traceability.
During each check, the current element value is compared with the latest stored value. When a difference is detected, both the previous and new values are written to the history table before the current state is updated.
This creates an auditable record rather than a temporary alert. Users can list active monitors, inspect results, review changes over time, and delete targets by ID through the CLI.
The project also documents practical limitations: some sites block automated access, page structure changes can invalidate selectors, and every monitoring use case must respect the target site’s terms and robots rules.
From monitor setup to recorded change history.
The demonstration follows the complete lifecycle: saved targets, automated checks, and persistent records showing exactly what changed.
Technology stack: Python · Requests · Beautiful Soup · Playwright · SQLite · Logging


