0

    【怎么解决钉钉群签到】

    2023.05.16 | admin | 196次围观

    最近疫情有所反复,很多高校开始使用钉钉进行线上教学

    有的时候老师会在钉钉群里进行签到,这可关乎平时成绩

    但是这耽误考研复习【开摆划水】啊 于是,几个中午的时间,开发出来这个东西【主要是使用了OCR技术】

    OCR技术就是对图像里面的文字进行识别

    项目地址:

    如果能帮到大家,希望大家多多点星,球球了

    下面介绍一下我的思路

    ·········

    整体的思路呢是对钉钉群的聊天框进行定时的截屏,然后对截屏的图片进行简单的处理之后使用ORC技术识别出来文字。通过识别出来的文字来看看现在聊天框里面有没有钉钉签到的消息,如果有通过发送消息的方式来让我知道

        while 1:
            time.sleep(1)
            img = pyautogui.screenshot(region=[370,300, 800, 570])  # 分别代表:左上角坐标,宽高
            # 对获取的图片转换成二维矩阵形式,后再将RGB转成BGR
            # 因为imshow,默认通道顺序是BGR,而pyautogui默认是RGB所以要转换一下,不然会有点问题
            img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
            gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
            #cv2.imshow("截屏", gray)
            gray2 = cv2.cvtColor(cv2.imread('dashen_compressed.png'), cv2.COLOR_BGR2GRAY)
    

    这个过程中调用的是腾讯云的api这个各个服务器厂商都有免费的,这个过程主要是需要创建一个云服务器的账户,申请一下文字识别的的免费额度,然后下载平台提过的api的包就可以了。

    最后通过对返回的文字中的关键字进行遍历便得到了结果。

    然后介绍任务2:根据识别结果来给我发出提醒

    我使用的是开启邮箱的STMP服务的方法,有使用过手机自带的电子邮箱的同学知道,在使用这个软件的时候需要把把你邮箱的STMP密钥拷贝出来钉钉电脑版可以签到吗,其实手机自带的这个软件也是使用的这个STMP服务来接受你的邮箱信息的。STMP就像是你邮箱的除了你的账户密码以外的第二把备用钥匙,使用这个钥匙可以不登陆你的邮箱就能接管你的邮箱。除非你主动设置过,这个东西才会开启,一般来讲是不会开的,大家也可以放心。

    我使用这个方法接管了我的邮箱然后使用我的邮箱给我发送提示消息这个问题便解决了。

    这个版本一开始使用的挺好的钉钉电脑版可以签到吗,不过,遇到了以下几个问题

    于是升级了版本2

    上述是通过变换检测方法和设计待机功能解决的

    变换检测方法是:

    通过将截屏的图像和上一次的做比对,进行矩阵减法然后计算矩阵均值

    通过对得到的均值取阈值,对大于阈值的情况才进行识别,这样只有在聊天框发生变化的时候才会进行检测。

    这样的好处是降低了检测的次数,而且不会多次报警。这样还不会形成周期型的调用API 不会被认作DOS攻击。

    设计待机

    因为老师一般不会在一节课内设计两次签到,

    所以在签到完成之后进行对程序进行半个小时的待机处理可以节省API调用次数

    这里使用的的是pyautogui工具使用代码模拟鼠标的点击来完成上述的任务。

    ALL IN ALL,还是希望同学们能够好好线上听课,我已经恢复线下上课了,希望疫情能够早日结束!!!!!

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论