如何更新网站内容(如何检查一个网站是否有更新或变动呢?(图))
优采云 发布时间: 2022-04-13 00:10如何更新网站内容(如何检查一个网站是否有更新或变动呢?(图))
作者需要工作,时不时要查很多网站有没有更新或变化,比如港铁(0066)有没有最新的新闻稿,立法会有没有和金管局研究部发布的最新研究表明,这些网站很多都没有提供邮件提醒或者RSS,所以这次我用Python写了一个程序来自动检查多个URL是否更新(见下表),可以跟踪相关网页的最新更新动态。
如何检查网页是否已更改?理论上当然可以把网页的所有内容都下载下来,然后和上次下载的内容逐字比较,但是这样比较费时费力。更有效的方法是比较它的哈希值。哈希值的原理是将一些数据输入到密码算法中,然后加密成一个固定长度的字符串。以MD5算法为例,如果“carrie lam”用md5加密,会得到一个32个字符的哈希值“2383d47724fe0ec51c1384d404fc3487”。如果把“carrie lam”改成“karrie lam”,哈希值会变成“4fc21c59f233f52de83c4e61d6b8ccc5”,虽然只是稍微差一点,但是它的哈希值却是面目全非。
散列值的另一个特点是,无论输入多少数据,散列值都是一个定长字符。即使您输入整个硬盘数据或电影的文件数据,MD5 哈希值也是 32 个字符。虽然输入的组合是无限的,32个字符的组合看似有限,但可以保证不同组合中相同哈希值的概率极低,因此哈希值被广泛用于不同的用途。比特币等加密货币使用大量的哈希值对交易数据进行加密,加入区块链。但是,由于 MD5 已经被破解,比特币使用了更先进的 SHA-256 和椭圆曲线数字签名算法。
这次做的程序是把网页的整个页面数据下载下来,用MD5算法计算出它的hash值,然后和之前的hash值进行比较。将通知用户。当然,这个简单的程序也有其局限性,即即使网页发生变化,也不一定是用户想知道的信息。用户仍然需要自己检查。同时,有些网页可能会动态改变内容,使程序认为网页总是在页面上。更新。
这个程序的目的不是跟踪那些经常更新的网页,比如新闻网站,而是一些只是间歇性更新的网页,比如企业网站或者政府部门的网页。如果用户需要跟踪十到数百个这样的页面的数据,那么这个程序是一个有用的选择。
回到程序本身,它的结构很简单,用户只需要在名为site的列表中输入自己想要追踪的网页,程序就会创建一个json文件,然后存储URL及其hash值,然后执行程序下一次会将URL的最新hash值与上次存储的hash值进行比较,如果没有,则表明网页已经更新或更改。用户可以自由修改或添加或删除网页列表,程序会自动更新json文件,但如果网页是新添加到站点列表中,由于之前没有计算过hash值,首先检查表示有更新。
检查站点更新.py
本文经许可转载。