Web Change Monitor Application Development by Nisa TekWeb Change Monitor Application Development by Nisa Tek

Web Change Monitor Application Development

Nisa Tek

Nisa Tek

Web Change Monitor

A configurable Python application that monitors selected elements on web pages, stores previous values in SQLite, detects content changes, and records a change history.

Project Purpose

The purpose of this project is to monitor selected content on static web pages and detect when that content changes.
Users can add a page URL and a CSS selector, store the latest value in SQLite, compare it with future results, and review the recorded change history.

Features

Add web pages using a name, URL, and CSS selector
Validate page URLs and CSS selectors before saving
Store monitored pages and latest values in SQLite
Check all monitored pages for content changes
Record old and new values when a change is detected
View the complete change history
Delete monitored pages by ID
Log application activity and monitoring results
Handle invalid input, connection errors, and missing elements

Technologies Used

Python
Requests
Beautiful Soup
SQLite
Logging
pathlib

Project Structure

web-change-monitor/ ├── main.py ├── scraper.py ├── database.py ├── monitor.py ├── logger.py ├── requirements.txt ├── .gitignore └── README.md

Installation

Clone the repository:
git clone https://github.com/niisa0/web-change-monitor.git
Navigate to the project directory:
cd web-change-monitor
Install the required packages:
pip install -r requirements.txt

Usage

Run the application:
python main.py
The application displays the following menu:
1 - Add monitored page
2 - List monitored pages
3 - Check all pages
4 - Show change history
5 - Delete monitored page
6 - Exit

Demo

How It Works

The user adds a page name, URL, and CSS selector.
The application validates the page and selector before saving.
The monitored page is stored in SQLite.
Requests downloads the page content.
Beautiful Soup extracts the selected element.
The current value is compared with the previously stored value.
If a change is detected, the old and new values are recorded.
Monitoring activity is written to a log file.

Limitations

The current version supports static web pages.
JavaScript-rendered content is not supported yet.
Some websites may block automated requests.
CSS selectors may need to be updated if a website changes its HTML structure.
Users are responsible for following each website's terms of service and robots.txt rules.

Future Improvements

Telegram and email notifications
Automatic scheduled monitoring
Retry support for temporary connection failures
CSV and Excel import/export
Automated tests with pytest
Dynamic website support with Selenium or Playwright
A web interface for managing monitored pages

Project Status

Version 1.0 is complete and functional.
The current version supports static page monitoring, SQLite storage, change detection, input validation, error handling, and logging.
Like this project

Posted Aug 3, 2026

A Python application that monitors webpage elements, detects content changes, stores results in SQLite, and maintains a history of changes.

Likes

0

Views

1

Timeline

Jul 27, 2026 - Jul 28, 2026