如何监控特定网站CSS的变化?

时间:2017-11-15 23:58:24

标签: python css web automation bots

我希望监控几个网站的CSS(这些网站不是我自己的)进行更改,并在收到时发出某种类型的通知。如果你可以请分享你对此的任何经验,指出我正确的方向如何编码它我会非常感激。

我希望这个脚本/应用程序在更改时通知Slack组,我认为这需要一个webhook。

不要求代码,只是关于特定API和其他可能有益的工具的任何建议。

3 个答案:

答案 0 :(得分:1)

我建议修改tschaefermedia的答案。

  
      
  1. 抓取.css文件的网站,保存。
  2.   
  3. 获取每个文件的md5。
  4.   
  5. 然后比较新文件的md5将旧文件。
  6.   
  7. 如果md5不同,则文件已更改。
  8.   

下面是一个获取大文件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进行通知。我没有松懈地工作,因为这部分解决方案也许别人可以给出建议。