Skip to content
Related Articles

Related Articles

Improve Article

Python script to monitor website changes

  • Difficulty Level : Medium
  • Last Updated : 24 Jan, 2021

In this article, we are going to discuss how to create a python script to monitor website changes. You can code a program to monitor a website and it will notify you if there are any changes. This program has many useful scenarios for example if your school website has updated something you will come to know about it. 

Approach:

We will follow the following steps to write this program:

  1. Read the URL you want to monitor.
  2. Hash the entire website.
  3. Wait for a specified amount of seconds.
  4. If there are any changes as compared to the previous hash notify me else wait and again and then again take the hash.

Libraries required:

Libraries we will be using are:

  • time: To wait for a specified amount of time.
  • hashlib: To hash the content of the entire website.
  • urlib: To perform the get request and load the content of the website.

Implementation:

Python3




# Importing libraries
import time
import hashlib
from urllib.request import urlopen, Request
  
# setting the URL you want to monitor
url = Request('https://leetcode.com/'
              headers={'User-Agent': 'Mozilla/5.0'})
  
# to perform a GET request and load the 
# content of the website and store it in a var
response = urlopen(url).read()
  
# to create the initial hash
currentHash = hashlib.sha224(response).hexdigest()
print("running")
time.sleep(10)
while True:
    try:
        # perform the get request and store it in a var
        response = urlopen(url).read()
          
        # create a hash
        currentHash = hashlib.sha224(response).hexdigest()
          
        # wait for 30 seconds
        time.sleep(30)
          
        # perform the get request
        response = urlopen(url).read()
          
        # create a new hash
        newHash = hashlib.sha224(response).hexdigest()
  
        # check if new hash is same as the previous hash
        if newHash == currentHash:
            continue
  
        # if something changed in the hashes
        else:
            # notify
            print("something changed")
  
            # again read the website
            response = urlopen(url).read()
  
            # create a hash
            currentHash = hashlib.sha224(response).hexdigest()
  
            # wait for 30 seconds
            time.sleep(30)
            continue
              
    # To handle exceptions
    except Exception as e:
        print("error")

Output:



output

Note: time.sleep() takes seconds as a parameter. You can make changes for notification instead of printing the status on the terminal you can write a program to get an email.

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up