python微信自动聊天小工具

一、主要通过 1、百度orc识别图片的文字

                2、pyautogui截图,模拟粘贴

                3、pymouse模拟鼠标点击

                4、pyperclip模拟键盘复制

二、思路:

1、对微信聊天框进行截图作为原始图1
2、循环对聊天框进行截图,和原始图1进行相似度对比
3、如果相似度有差距,判定为有新的消息
4、对聊天区域进行截图,识别聊天的文字
5、通过预置的聊天对话,进行回复
6、循环2

三、效果:

四、插入代码:

main.py

'''
自动聊天小工具
'''
import os
import time

from aip import AipOcr
from skimage.measure import compare_ssim
import cv2
import pyautogui
from pymouse import PyMouse
from conf import *
from pyperclip import copy, paste


class Wechat:
    def __init__(self):
        self.one_abs = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'one.jpg')
        self.two_abs = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'two.jpg')
        self.read_need = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'read.jpg')
        self.client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
        self.mouse = PyMouse()
        self.message = {
            "在吗?": '亲爱的,我在!',
            "你在干什么?": "亲爱的,我在学习!",
            "吃饭了吗": '还没有,一会下班了一块吃大餐!'
        }

    def click(self, x, y, m):
        m.click(x, y)

    def snap(self, x, y, w, h, name):
        # 截图
        if os.path.exists(name):
            os.remove(name)
        im = pyautogui.screenshot(region=(x, y, w, h))  # 左上,宽高
        im.save(name)

    def compare_image(self, path_image1, path_image2):
        imageA = cv2.imread(path_image1)
        imageB = cv2.imread(path_image2)

        grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
        grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)

        (score, diff) = compare_ssim(grayA, grayB, full=True)
        print("SSIM: {}".format(score))
        return score

    def get_file_content(self, filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()

    def run(self):
        # 1、对微信聊天框进行截图作为原始图1
        self.snap(876, 149, 875, 800, self.one_abs)
        i = 0
        while True:
            i += 1
            print('===idx:{}'.format(i))
            # 2、循环对聊天框进行截图,和原始图1进行相似度对比
            self.snap(876, 149, 875, 800, 'two.jpg')
            same = self.compare_image(self.one_abs, self.two_abs)
            print('====相似度:{}'.format(same))
            if same < 0.98:
                # # 3、如果相似度有差距,判定为有新的消息
                # 4、对聊天区域进行截图,识别聊天的文字
                self.snap(876, 695, 486, 55, 'read.jpg')

                image = self.get_file_content(self.read_need)
                r = self.client.basicGeneral(image)
                res_msg = r.get('words_result')[0].get('words')
                # 5、通过预置的聊天对话,进行回复
                send_msg = self.message.get(res_msg)
                print(send_msg)
                self.click(1131, 840, self.mouse)
                copy(send_msg)
                pyautogui.hotkey('ctrl', 'v')
                self.click(1284, 923, self.mouse)
                self.click(1053, 1061, self.mouse)
                time.sleep(1)
                self.snap(876, 149, 875, 800, self.one_abs)
            else:
                continue
        pass


if __name__ == '__main__':
    Wechat().run()

conf

# 百度信息
APP_ID = '2447122254'
API_KEY = 'Hj3stMaaZ1jAdeGfLd6wIO14dSlWc'
SECRET_KEY = 'jn1G6CjlPtfSEpmOGxREOQ4N2R58aVXT0z'

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值