【发布时间】:2016-10-25 18:42:10
【问题描述】:
我是 Python 新手。我想做一个“changedetector”程序。为此,我从网站获取 url 内容。并使用某种算法进行散列(如 md5)。如果我们的第一个哈希与网站内容的第二个哈希不匹配。我在推特自己。我将使用 cronjob。但我无法比较它们之间的哈希值。我必须保留旧哈希。这个旧哈希必须与新哈希进行比较。但是我的代码不能保留旧的哈希。所以每次我执行代码。反正就是在发推文。我不想要这个。所以我有实时比较方法。那么如何做到这一点呢?我需要创建数据库吗?还是我需要使用数组?我的代码;
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')
【问题讨论】:
-
您需要将旧文件存储在下次运行程序时可以访问的地方。无论是文件、数据库还是无关紧要的东西。
-
感谢您的回答。但是如何交换这些哈希值?新哈希将是旧哈希。而这个新的哈希将是旧的哈希。太混乱了?
-
在程序结束时,您会将新的哈希值保存到文件中。然后在程序开始时,您将从文件中加载此哈希并将其存储在名为
oldhash或其他名称的变量中。 -
如果您连续循环,那么只需存储最后一个哈希值并进行比较,如果您要重新运行代码并且某些间隔只需将哈希值保存到文件并在每次运行时加载。您还可以使用
requests.head(url).headers["Last-Modified"]查看页面的最后修改时间 -
你是在间隔调用脚本还是代码在死循环?
标签: python twitter hash python-requests string-comparison