比较哈希并评估每个哈希

Comparing hashes and evaluate each hash

我是 Python 的新人。我想做一个 "changedetector" 程序。为此,我从网站获取 url 内容。并使用某种算法进行哈希处理。(如 md5)。如果我们的第一个哈希与网站内容的第二个哈希不匹配。我在发微博。我会使用定时任务。但我无法比较它们之间的哈希值。我必须保留旧哈希。并且这个旧哈希必须与新哈希进行比较。但是我的代码无法保留旧的哈希值。所以每次我执行代码。无论如何它都在发推文。我不想要这个。所以我有实时比较方法。那么该怎么做呢?我需要创建数据库吗?还是我需要使用数组?我的代码;

    import hashlib
    import requests
    from twython import Twython


    link = "https://blablabla.net"
    f = requests.get(link)
    content = str(f.text)
    a= hashlib.md5()
    a.update(content.encode('utf-8'))
    sabithashdegeri= a.hexdigest
    print(a.hexdigest())

    if sabithashdegeri == a.hexdigest :
    twitter.update_status(status='Specified user () hasnt post anything yet')
    else:
    twitter.update_status(status='Specified user () has post something! Check it on blablabla')

由于您处于循环中,只需在循环外创建一个初始散列并与内部的新散列进行比较,将 prev 变量更新为最新的新散列:

import hashlib
from time import sleep

def hsh(txt):
    a = hashlib.md5()
    a.update(txt.encode('utf-8'))
    return a.hexdigest()

def bot(link):        
    f = requests.get(link)
    prev = hsh(f.text)      
    while True:
        f = requests.get(link)
        sabithashdegeri = hsh(f.text)
        if prev == sabithashdegeri:
             twitter.update_status(status='Specified user () hasnt post anything yet')
        else:
             twitter.update_status(status='Specified user () has post something! Check it on blablabla')
             prev = sabithashdegeri
        sleep(10)

我想你在某个地方睡了一觉可以节省 cpu 周期。

运行 link 上的代码并用印刷品替换推特更新:

In [52]: link = "https://www.mehmetince.net/"

In [53]: bot(link)
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet
Specified user () hasnt post anything yet