python微信库we_python微信库we_python操作微信客户端:WechatPCAPI库实现自动化回复...
目前有一个项目 WechatPCAPI 可以对微信进行操作,简单来说它是直接操作 PC 版微信客户端的,当然它有一定不足之处就是:PC 版微信客户端和 Python 都需要使用指定版本的,本文我们使用的 Python 版本为 3.7.6 ,微信客户端使用版本为 2.6.8.52 ,WechatPCAPI 的 GitHub 地址为: https://github.com/Mocha-L/WechatPCAPI。
获取好友列表
WechatPCAPI 提供了方法 get_friends(),该方法返回信息包括:好友、群和公众号的列表信息,信息内容主要包括:微信号、昵称和自己设置的备注。
我们使用获取的昵称做个简单的词云展示,代码实现如下所示:logging.basicConfig(level=logging.INFO)
def on_message(message):
pass
def get_friends():
# 初始化微信实例
wx_inst = WechatPCAPI(on_message=on_message, log=logging)
# 启动微信
wx_inst.start_wechat(block=True)
# 等待登陆成功,此时需要人为扫码登录微信
while not wx_inst.get_myself():
time.sleep(5)
print('登陆成功')
nicknames = []
# 排除的词
remove = ['还是', '不会', '一些', '所以', '果然',
'起来', '东西', '为什么', '真的', '这么',
'但是', '怎么', '还是', '时候', '一个',
'什么', '自己', '一切', '样子', '一样',
'没有', '不是', '一种', '这个', '为了'
]
for key, value in wx_inst.get_friends().items():
if key in ['fmessage', 'floatbottle', 'filehelper'] or 'chatroom' in key:
continue
nicknames.append(value['wx_nickname'])
words = []
for text in nicknames:
if not text:
continue
for t in jieba.cut(text):
if t in remove:
continue
words.append(t)
global word_cloud
# 用逗号隔开词语
word_cloud = ','.join(words)
def nk_cloud():
# 打开词云背景图
cloud_mask = np.array(Image.open('bg.png'))
# 定义词云的一些属性
wc = WordCloud(
# 背景图分割颜色为白色
background_color='white',
# 背景图样
mask=cloud_mask,
# 显示最大词数
max_words=300,
# 显示中文
font_path='./fonts/simkai.ttf',
# 最大尺寸
max_font_size=70
)
global word_cloud
# 词云函数
x = wc.generate(word_cloud)
# 生成词云图片
image = x.to_image()
# 展示词云图片
image.show()
# 保存词云图片
wc.to_file('nk.png')
看一下效果:
消息防撤回
我们在使用微信和好友聊天时,对方有时会有撤回消息的情况,正常情况下,我们是不知道好友撤回的消息是什么的,通过 WechatPCAPI 就可以实现消息防撤回的功能。
我们知道通常撤回的消息是点击撤回操作前一步发送的内容,当然也可能撤回的是前两步、三步 ... 的消息,这里我们只对撤回前一步的消息做处理,基本思路是:我们将撤回前一步发送的消息存一下,当对方点击撤回操作时,我们再将前一步的消息再次返回给自己。
下面看一下实现代码:logging.basicConfig(level=logging.INFO)
queue_recved_event = Queue()
def on_message(msg):
queue_recved_event.put(msg)
def login():
pre_msg = ''
# 初始化微信实例
wx_inst = WechatPCAPI(on_message=on_message, log=logging)
# 启动微信
wx_inst.start_wechat(block=True)
# 等待登陆成功,此时需要人为扫码登录微信
while not wx_inst.get_myself():
time.sleep(5)
print('登陆成功')
while True:
msg = queue_recved_event.get()
data = msg.get('data')
sendinfo = data.get('sendinfo')
data_type = str(data.get('data_type'))
msgcontent = str(data.get('msgcontent'))
is_recv = data.get('is_recv')
print(msg)
if data_type == '1' and 'revokemsg' not in msgcontent:
pre_msg = msgcontent
if sendinfo is not None and 'revokemsg' in msgcontent:
user = str(sendinfo.get('wx_id_search'))
recall = '撤回的消息:' pre_msg
wx_inst.send_text(to_user=user, msg=recall)
看一下操作
更多python相关内容,请关注python自学网。
python微信库we_python微信库we_python操作微信客户端:WechatPCAPI库实现自动化回复...相关推荐
- python弹球游戏双球代码键盘操作_python运用pygame库实现双人弹球小游戏
使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...
- python远程执行linux命令256_python远程操作Linux——使用paramiko库
一.paramiko介绍 paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式.可以实现远程命令执行.文件传输.中间SSH代理等功能,相对于Pexpect,封装的层次更高, ...
- python识别屏幕图像后点击操作_Python学习笔记——用GUI自动化控制键盘和鼠标
安装pyautogui模块 pyautogui模块可以向Windows.OSX和Linux发送虚拟按键和鼠标点击. 安装依赖在Windows上,不需要安装其他模块. 在OSX上,运行 sudo pip ...
- python操作微信手机端下载_【python】自动化连接和操作手机微信
1. 环境配置 JDK Android SDK Appium MuMu 1.1. JDK 1.1.1. 下载安装 去华为云镜像下载JDK,我下载的版本是:jdk-8u181-windows-x64.e ...
- python朋友圈头像_用python一键生成头像墙,将你微信好友头像全部收集起来
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python编程与实战 ( 想要学习Python?Py ...
- python取模运算_python取模操作
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文最先发布在:https:www.itcoder.techpostspytho ...
- Python 操作微信,ntchat库
2022/11/10更新: 删库了,具体情况未知 发现一个三方库:ntchat,可以实现对微信的操作,有微信版本限制(WeChatSetup3.6.0.18). 官方介绍:ntchat-Gi ...
- python微信库有哪些_GitHub - zwczou/weixin-python: 微信SDK - 包括微信支付,微信公众号,微信登陆,微信消息处理等...
微信SDK 提供微信登陆,公众号管理,微信支付,微信消息的全套功能 文档目录 如果需要单独使用其中的某些模块,可以见文档目录的具体模块 如果需要组合在一起可以参考快速开始 目录 安装 使用pip su ...
- python 微信聊天机器人_python操作微信自动发消息的实现(微信聊天机器人)
前言 最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已 ...
- Python骚操作-微信远程控制电脑
Python+微信远程控制电脑 今天带给大家一个非常有意思的 python 程序,基于 itchat 实现微信控制电脑.你可以通过在微信发送命令,来拍摄当前电脑的使用者,然后图片会发送到你的微信上.甚 ...
最新文章
- 广东2021高考成绩查询6,2021全国高考6月10日全部结束 预计最快6月23日可查高考成绩...
- python爬取百度文库付费文档_亲测免费转换百度文库付费文件
- [13年迁移]firefoxfocus为火狐新建焦点事件
- SAP Spartacus的登录验证机制 - user login Authentication
- linux git 修改文件,关于linux:Git删除所有未修改的文件
- mobx中跟新了数据视图没变化_【第1781期】MobX 简明教程
- C++11: final与override
- 如何重命名Git标签?
- 关于ADO.Net连接池(Connection Pool)的一些个人见解
- java并发编程实战读书笔记 ExecutorCompletionService
- [人工智能-综述-3]:人工智能与硅基生命,人类终将成为造物主
- 2021年中国充电桩行业发展环境(PEST)分析:随着新能源汽车的增加,充电桩也随之增加[图]
- 概率论基础 - 6 - 切比雪夫不等式
- nginx代理、白名单过滤、双域名备案代理
- 标书制作,全流程视频教程大全
- 101128 ~ 101204
- AI人工智能技术在车载监控系统中有哪些应用?
- 简单电子产品的蓝牙电路设计和PCB设计
- 由于无法验证发布者 所以windows阻止此软件
- 一键翻译PDF神器|网称最强翻译软件
热门文章
- 3Ds Max坐标轴切换,使用物体的世界坐标和本地坐标之间切换
- Non-exhaustive, Overlapping Clustering《非详尽的、可重叠的聚类》论文算法的解读(学习笔记)
- 微信小程序 生命周期
- 数字IC设计和CS选那个?
- 打造一双 Crypto OG 和运动达人都喜欢的鞋 — STEPN创始人分享 | Moonshot Mafia 预告...
- django生产环境部署(四):asgi服务器daphne处理websocket请求
- elasticsearch 基于文件搜索
- postgres 数据导入导出
- CCAT考试整理JAVA试题
- 锂电池主动均衡simulink仿真 四节电池 基于buckboost(升降压)拓扑