【问题标题】:How to monitor changes to a particular website CSS?如何监控特定网站 CSS 的更改?
【发布时间】:2018-04-29 09:11:38
【问题描述】:

我希望监视一些网站(这些网站不是我自己的)的 CSS 是否有更改,并在它们发生更改时收到某种通知。如果您可以分享您对此的任何经验,以指出我如何编写代码的正确方向,我将不胜感激。

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

不要求代码,只要求提供有关特定 API 和其他可能有用的工具的建议。

【问题讨论】:

    标签: python css web automation bots


    【解决方案1】:

    我建议修改 tschaefermedia 的答案。

    1. 为 .css 文件爬取网站,保存。
    2. 为每个文件制作一个 md5。
    3. 然后比较新文件和旧文件的md5。
    4. 如果 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
    

    【讨论】:

      【解决方案2】:

      我建议在您的工作流程中使用 Github。这样您就可以很好地了解更改以及恢复到旧版本的方法。

      【讨论】:

      • 编辑我的问题更清楚。我想监控别人的网站。不是我自己的。
      【解决方案3】:

      一种可能的解决方案:

      爬取网站以获取 .css 文件,保存更改日期和/或文件大小。

      每次抓取比较信息后,如果检测到更改,请使用 slack API 进行通知。我没有使用过 slack,对于这部分解决方案,也许其他人可以提供建议。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        • 1970-01-01
        • 2020-09-13
        • 2013-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多