![52f249eba3cc871c73963e075d0b0f33.png](https://i-blog.csdnimg.cn/blog_migrate/eb3fcf46773d55838dff370c4136fc61.png)
最近《隐秘的角落》一剧大火,"张东升叫你去爬山"的梗也刷爆了朋友圈
![70a1fff906a7428efb118a0e1ae21095.png](https://i-blog.csdnimg.cn/blog_migrate/a6f750fdcd4b7df257fb9e25e155f544.jpeg)
小伙伴们纷纷表示害怕,不敢去不敢去。
那么,我们要如何拒绝张东升呢,当然是用万能的PyWeChatSpy!
仅使用PyWeChatSpy还不够,为了识别图片我们还需要使用腾讯AI开放平台的OCR接口来帮助我们识别图片或表情包上的文字
- 首先需要登录腾讯开放平台,实名认证后申请通用文字识别 API
- 创建API访问密钥 点击页面上的新建密钥即可
接下来就可以编码自动拒绝张东升了
第一步当然还是准备好我们反击用的沙雕表情包 用了这个表情包想必张东升应该会直接杀上门而不是邀请去爬山了(不是
![081602278379308b7c93b5263b6af2f3.png](https://i-blog.csdnimg.cn/blog_migrate/aeef711f43952b2d1fd4fee3f6f25cd6.jpeg)
第二步安装2.8.0.133版本的PC微信客户端、Python和PyWeChatSpy,详情见微信被拍烦了嘛?用PyWeChatSpy吧!
安装腾讯AI SDK For Python
python -m pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python
第三步开始编码
- 1.引入我们需要的模块PyWeChatSpy、tencentcloud等
from PyWeChatSpy import WeChatSpy
from tencentcloud.common import credential
from tencentcloud.ocr.v20181119 import ocr_client, models
import base64
- 2.定义消息回复函数my_parser()
def my_parser(data):
pass
- 3.实例化WeChatSpy
spy = WeChatSpy(parser=my_parser)
- 4.最后编写my_parser函数处理逻辑,这里暂处理文本与图片消息
def my_parser(data):
if data["type"] == 5: # 判断是微信消息数据
for msg in data["data"]: # 遍历微信消息
if not msg["self"]: # 判断消息是否由他人发出
if msg["msg_type"] == 1: # 判断是否文本消息
print(msg["content"])
if "爬山" in msg["content"]: # 判断是否去爬山
spy.send_file(msg["wxid1"], image_path) # 发送图片
elif msg["msg_type"] == 3: # 判断是否图片消息
req = models.GeneralAccurateOCRRequest()
with open(msg["image_path"], "rb") as rf: # 读取图片
base64_data = base64.b64encode(rf.read()) # 将图片转化为base64编码
req.ImageBase64 = base64_data.decode()
cred = credential.Credential("api访问Id(secretId)",
"api访问key(secretKey)")
client = ocr_client.OcrClient(cred, "ap-shanghai")
r = client.GeneralAccurateOCR(req) # 识别图片
for item in r.TextDetections:
print(item.DetectedText)
if "爬山" in item.DetectedText:
spy.send_file(msg["wxid1"], image_path) # 发送图片
break
完成,这时候无论是张东升发文字或是自己图片,我们都可以自动拒绝他的爬山邀请了
![96773e9ac4291d0b62e3b5857d24bf5b.png](https://i-blog.csdnimg.cn/blog_migrate/db5aa46819a3170c47986dfceda09038.jpeg)
![4ea0420786636b3a06d52d3fbdfd26da.png](https://i-blog.csdnimg.cn/blog_migrate/ab7fd1a2121f68f5686ec3c37d731dee.png)
整体代码如下
from PyWeChatSpy import WeChatSpy
from tencentcloud.common import credential
from tencentcloud.ocr.v20181119 import ocr_client, models
import base64
image_path = r"D:imagesbqstz.jpg"
def my_parser(data):
if data["type"] == 5: # 判断是微信消息数据
for msg in data["data"]: # 遍历微信消息
if not msg["self"]: # 判断消息是否由他人发出
if msg["msg_type"] == 1: # 判断是否文本消息
print(msg["content"])
if "爬山" in msg["content"]: # 判断是否去爬山
spy.send_file(msg["wxid1"], image_path) # 发送图片
elif msg["msg_type"] == 3: # 判断是否图片消息
req = models.GeneralAccurateOCRRequest()
with open(msg["image_path"], "rb") as rf: # 读取图片
base64_data = base64.b64encode(rf.read()) # 转化为base64
req.ImageBase64 = base64_data.decode()
cred = credential.Credential("AKIDe4DxkJXlsiHZnlDwFINBixHKJ4gJwLyv",
"py1ZrtfAWTGn3MQFnCQ0LQaU8WorHTkl")
client = ocr_client.OcrClient(cred, "ap-shanghai")
r = client.GeneralAccurateOCR(req) # 识别图片
for item in r.TextDetections:
print(item.DetectedText)
if "爬山" in item.DetectedText:
spy.send_file(msg["wxid1"], image_path) # 发送图片
break
spy = WeChatSpy(parser=my_parser) # 实例化WeChatSpy类
if __name__ == '__main__':
spy.run() # 运行代码
py文件存放的地方要和图片文件夹一致,否则无法正确回复,如图片路径D:imagesbqstz.jpg,1qipashan.py存放路径为D:1qipashan.py 暂不支持中文路径
喜欢的小伙伴不要吝啬点个赞吧~