网站内容更新提醒(以Python写一个自动检查多个网址是否更新的程式,可以追踪相关网页的最新动态 )
优采云 发布时间: 2022-04-08 06:24网站内容更新提醒(以Python写一个自动检查多个网址是否更新的程式,可以追踪相关网页的最新动态
)
用Python编写一个程序,自动检查多个URL是否更新,并且可以跟踪相关网页的最新动态
因为编辑工作的需要,不定期的查看很多网站有没有更新或者变化,比如一些技术博主有没有最新发布的文章,公司的研究有没有部门发布了最新研究,这些网站很多都不提供邮件提醒或者RSS,所以这次我用Python写了一个程序,自动检查多个URL是否更新,并且可以跟踪相关网页的最新动态.
有需要Python学习资料的朋友吗?小编整理了【一套Python资料、源码和PDF】。有兴趣的可以关注小编,给学习资料发私信(关注后为私信)。反正闲着就闲着。学习一些东西
如何检查网页是否已更改?理论上当然可以把网页的所有内容都下载下来,然后和上次下载的内容逐字比较,但是这样比较费时费力。更有效的方法是比较它的哈希值。哈希值的原理是将一些数据输入到密码算法中,然后将其加密成固定长度的字符串。以MD5算法为例,如果“carrie lam”用md5加密,会得到一个32个字符的哈希值“2383d47724fe0ec51c1384d404fc3487”。如果把“carrie lam”改成“karrie lam”,hash值会变成“4fc21c59f233f52de83*敏*感*词*e61d6b8ccc5”,虽然只是稍微差一点,但是它的hash值却是面目全非。
散列值的另一个特点是,无论输入多少数据,散列值都是一个定长字符。即使你输入整个硬盘的数据或者电影的文件数据,它的MD5哈希值也是32个字符。虽然输入的组合是无限的,32个字符的组合看似有限,但可以保证不同组合中相同哈希值的概率极低,因此哈希值被广泛用于不同的用途。比特币等加密货币使用哈希值对交易数据进行加密,加入区块链。但是,由于 MD5 已经被破解,比特币使用了更先进的 SHA-256 和椭圆曲线数字签名算法。
这次做的程序是把网页的整个页面数据下载下来,用MD5算法计算出它的hash值,然后和之前的hash值进行比较。如果两者不同,则说明网页上的数据发生了变化。将通知用户。当然,这个简单的程序也有其局限性,即即使网页发生变化,也不一定是用户想知道的信息。用户仍然需要自己检查。同时,有些网页可能会动态地改变内容,使程序认为网页一直处于打开状态。更新。
这个程序的目的不是跟踪那些经常更新的网页,例如新闻网站,而是一些只是间歇性更新的网页,例如企业网站或政府部门的网页。如果用户需要跟踪十到数百个这样的页面的数据,那么这个程序是一个有害的选择。
回到程序本身,它的结构很简单,用户只需要在名为site的列表中输入自己想要追踪的网页,程序会创建一个json文件,然后存储URL及其hash值,然后执行程序下次会比较URL的最新hash值与上次存储的hash值是否一致,如果不一致,则表明网页已经更新或更改。用户可以自由修改或添加或删除网页列表,程序会自动更新json文件,但如果在站点列表中添加新网页,由于之前没有计算过hash值,首先check 表示有更新。
Github 门户:
检查站点更新.py