Create a Web-Crawler Notification Bot in Python
Last Updated :
24 Apr, 2025
In this article, we will guide you through the process of creating a Web-Crawler Notification Bot using Python. This notification bot is designed to display notification messages on your window, providing a useful tool for alerting users to relevant information gathered through web crawling.
What is a Notification Bot?
A Notification Bot is a program designed to deliver timely alerts or messages to users. Typically automated, it serves to notify users of important events, updates, or information, enhancing user engagement and awareness. In Python, creating a Notification Bot involves utilizing web-crawling techniques to gather relevant data for instant notifications on a user's window.
Create A Web-Crawler Notification Bot in Python
Below, are the step-by-step implementation of Web-Crawler Notification Bot in Python.
Step 1: Create a Virtual Environment
First, create the virtual environment using the below commands
python -m venv env
.\env\Scripts\activate.ps1
Step 2: Install Neccassary Library
We need to install two libraries: bs4 for BeautifulSoup and plyer for notification display. For install this library run the below command
pip install bs4
pip install plyer
Step 3: Import Neccassary Library
We , First import the two libraries: bs4 for BeautifulSoup and plyer for notification display. For import these library run the below code
Python3
from bs4 import BeautifulSoup
from plyer import notification
Step 4:Implement the Logic
In this example, below code first imports necessary modules such as requests for HTTP requests, BeautifulSoup for HTML parsing, and plyer for notifications. The `send_notification` function is defined to display notifications, and the `parse_html` function fetches the content of a webpage, compares it with the previous content, and sends a notification if changes are detected. The main loop in the `main` function continuously checks the specified URL (in this case, Apple's iPhone page) for changes every hour, utilizing the functions mentioned earlier.
Python3
import requests
from bs4 import BeautifulSoup
from plyer import notification
import time
# Function to send notifications
def send_notification(title, message):
notification.notify(
title=title,
message=message,
timeout=10 # Notification will disappear after 10 seconds
)
# Function to parse HTML and check for changes
def parse_html(url, last_content):
try:
# Send HTTP request and get the webpage content
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Customize this part based on the structure of the webpage
current_content = str(soup.find('div', class_='content').text)
# Check if content has changed since the last check
if current_content != last_content:
send_notification("Web Crawler Notification", "New content detected on the webpage!")
return current_content
except Exception as e:
print(f"Error: {e}")
return last_content
# Main loop to run the script continuously
def main():
url = "https://www.apple.com/iphone/" # or any example url
last_content = ""
while True:
last_content = parse_html(url, last_content)
time.sleep(3600) # Check for changes every hour
if __name__ == "__main__":
main()