我希望监控几个网站的CSS(这些网站不是我自己的)进行更改,并在收到时发出某种类型的通知。如果你可以请分享你对此的任何经验,指出我正确的方向如何编码它我会非常感激。
我希望这个脚本/应用程序在更改时通知Slack组,我认为这需要一个webhook。
不要求代码,只是关于特定API和其他可能有益的工具的任何建议。
答案 0 :(得分:1)
我建议修改tschaefermedia的答案。
- 抓取.css文件的网站,保存。
- 获取每个文件的md5。
- 然后比较新文件的md5将旧文件。
- 如果md5不同,则文件已更改。
醇>
下面是一个获取大文件md5的函数。
def md5(file_name):
# make a md5 hash object
hash_md5 = hashlib.md5()
# open file as binary and read only
with open(file_name, 'rb') as f:
i = 0
# read 4096 bytes at a time and take the md5 hash of it and add it to the hash total
# b converts string literal to bytes
for chunk in iter(lambda: f.read(4096), b''):
i += 1
# get sum of md5 hashes
# m.update(a); m.update(b) is equivalent to m.update(a+b)
hash_md5.update(chunk)
# check for correct number of iterations
file_size = os.path.getsize(file_name)
expected_i = int(math.ceil(float(file_size) / float(4096)))
correct_i = i == expected_i
# check if md5 correct
md5_chunk_file = hash_md5.hexdigest()
return md5_chunk_file
答案 1 :(得分:0)
我建议在你的工作流程中使用Github。这使您可以很好地了解更改以及恢复旧版本的方法。
答案 2 :(得分:0)
一种可能的解决方案:
抓取.css文件的网站,保存更改日期和/或文件大小。
每次抓取比较信息后,如果检测到更改,请使用slack API进行通知。我没有松懈地工作,因为这部分解决方案也许别人可以给出建议。