如何检查大量网页是否一次更新

  来源:  编辑:国朗胜

我需要不定期查看很多网站的更新或变动,比如港铁(0066)有没有最新的新闻稿,立法会和HKMA的研究部门有没有发布作者的最新工作需求,不定期查看很多网站的更新或变动,比如港铁(0066)有没有最新的新闻稿,立法会和HKMA的研究部门有没有发布最新的研究。这些网站很多都不提供邮件提示或者RSS,所以这次用Python写一个程序,自动检查多个网站是否有更新(见下表),可以跟踪相关网站的最新动态。

如何检查网页是否被修改过?理论上,可以下载网页的所有内容,然后与上次下载的内容进行逐字比较,但这样做比较耗时,也比较浪费。更有效的方法是比较它的哈希值。哈希值的原理是将一些数据输入到密码算法中,然后加密成固定长度的字符串。以md5的算法为例。如果“carrie lam”使用MD5加密,将获得32个字符的哈希值“2383d 47724 E0 EC 51 c 1384d 404 fc 3487”。如果“carrie lam”更改为“karrie lam”,哈希值将变为“4C21C59F233F”。

哈希值的另一个特点是,无论输入多少数据,它的哈希值都是固定长度的字符。即使输入整个硬盘数据或一部电影的存档数据,其MD5哈希值也是32个字符。虽然输入组合是无限的,32个字符的组合看似有限,但可以保证不同组合中出现相同哈希值的可能性极低,因此哈希值已经被广泛用于不同的用途。比特币等加密货币使用大量哈希值加密交易数据,加入区块链。但自从MD5被破解后,比特币使用了更先进的SHA-256和椭圆曲线数字签名算法。

这次做的程序是下载网页的整页信息,用MD5算法计算它的哈希值,然后和上一次的哈希值进行比较。如果两者不同,说明网页的信息发生了变化,然后会通知用户。当然,这个简单的程序也有它的局限性,那就是即使网页发生了变化,也不一定是用户想要了解的信息,用户还是要自己去查。同时,有些网页可能会动态改变内容,让这个程序以为网页每次都在更新。

这个程序的目的不是跟踪频繁更新的网页,比如新闻网站,而是只跟踪偶尔更新的网页,比如企业网站或者政府部门。如果用户需要跟踪几十到几百个这样的网页,这个程序是一个很有帮助的选择。

回到程序本身,它的结构非常简单。用户只需在名为site的列表中输入想要跟踪的网页。该程序将创建一个json文件,然后存储URL及其哈希值。下次执行程序时,会比较URL的最新哈希值与上次存储的哈希值是否一致。如果没有,则表示网页已经更新或更改。用户可以自由修改、添加或删除网页列表,程序会自动更新json文件。但是,如果网页是新添加到站点列表中的,第一次检查会显示它已更新,因为以前没有计算过哈希值。

checksiteupdate.py

本文经授权转载。

标签:

免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!