监控网站变化的Python脚本
在本文中,我们将讨论如何创建Python脚本来监控网站更改。您可以编写一个程序来监控网站,如果有任何更改,它会通知您。该程序有许多有用的场景,例如,如果您的学校网站更新了一些您会了解的内容。
方法:
我们将按照以下步骤来编写这个程序:
- 阅读您要监控的 URL。
- 散列整个网站。
- 等待指定的秒数。
- 如果与之前的散列相比有任何更改,请通知我,否则请等待,然后再次获取散列。
需要的库:
我们将使用的库是:
- 时间:等待指定的时间。
- hashlib:散列整个网站的内容。
- urlib:执行获取请求并加载网站内容。
执行:
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")
输出:
注意: time.sleep() 以秒为参数。您可以更改通知而不是在终端上打印状态,您可以编写程序来接收电子邮件。