Python写一个自动检查多个网址是否更新的程序

优采云 发布时间: 2021-05-30 04:00

  Python写一个自动检查多个网址是否更新的程序

  来源 |新闻 Len 翻译 | @IT技术头条

  组织|人工智能时间

  用Python编写一个程序,自动检查多个URL是否更新,并可以跟踪相关网页的最新动态

  由于编辑工作的需要,我要时不时查看很多网站的更新或变化,比如有没有技术博主有最新发表的文章,公司的研究部有没有已发布最新研究,这些 网站 许多不提供电子邮件通知或 RSS。因此,这次我写了一个程序,在Python中自动检查多个URL是否更新,以跟踪相关网页的最新动态。

  如何查看网页是否被修改过?理论上当然可以把网页的所有内容都下载下来,和上次下载的内容逐字对比,但是这样比较费时费力。更有效的方法是比较其哈希值。哈希值的原理是将一些数据输入密码算法,然后加密成定长字符串。以MD5算法为例。如果你用 md5 加密“carrie lam”,你会得到一个 32 个字符的哈希值“2383d47724fe0ec51c1384d404fc3487”。如果将“carrie lam”更改为“karrie lam”,则哈希值将变为“4fc21c59f233f52de83*敏*感*词*e61d6b8ccc5”。虽然只是微小的差异,但它的哈希值已经变得面目全非。

  哈希值的另一个特点是无论输入多少数据,哈希值都是一个定长字符。即使输入整个硬盘数据或一部电影的文件数据,其MD5哈希值都是32个字符。虽然输入的组合是无限的,32个字符的组合似乎是有限的,但它们可以保证相同的哈希值在不同的组合中出现的可能性极低,因此哈希值被广泛用于不同的用途。加密货币,例如比特币,使用哈希值来加密交易数据并将其添加到区块链中。但是,由于MD5已经被破解,比特币采用了更先进的SHA-256和椭圆曲线数字签名算法。

  这次做的这个程序是下载整个页面的网页数据,使用MD5算法计算出它的hash值,并与上一次的hash值进行比较。如果两者不同,则表示该网页已更改信息。此时将通知用户。当然,这个简单的程序也有它的局限性,就是即使网页发生了变化,也不一定是用户想知道的信息。用户仍需亲自检查。同时,某些网页可能会动态改变内容,使程序认为该网页一直在那里。更新。

  该程序的目的不是跟踪经常更新的网页,例如新闻网站,而是只会持续更新的网页,例如企业网站或政府部门的网页。如果用户需要跟踪几十个和几百个这样的页面,这个程序是一个无益的选择。

  回到程序本身,它的结构很简单。用户只需在名为站点的列表中输入要跟踪的网页即可。程序会创建一个json文件,然后将URL和它的hash值保存在下次程序再次执行的时候,会比较这个URL的最新hash值和上次保存的hash值是否一致,如果否,则表示网页已更新或更改。用户可以自由修改或添加或删除网页列表,程序会自动更新json文件。但是,如果网页是新添加到站点列表中的,由于之前没有计算过hash值,所以第一次检查表示有更新。

  

  Github 门户:

  checksiteupdate.py

  

  今天推荐

  《Python项目开发实战》

  通过实际项目提高您的 Python 技能

  这本书向您展示了现实世界中的 Python 编程

  涵盖基本的应用程序创建、构建和打包库

  在经验丰富的 Python 讲师提供的宝贵帮助下

  教程并开始创建项目。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线