目前有一个项目 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库实现自动化回复...相关推荐

  1. python弹球游戏双球代码键盘操作_python运用pygame库实现双人弹球小游戏

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...

  2. python远程执行linux命令256_python远程操作Linux——使用paramiko库

    一.paramiko介绍 paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式.可以实现远程命令执行.文件传输.中间SSH代理等功能,相对于Pexpect,封装的层次更高, ...

  3. python识别屏幕图像后点击操作_Python学习笔记——用GUI自动化控制键盘和鼠标

    安装pyautogui模块 pyautogui模块可以向Windows.OSX和Linux发送虚拟按键和鼠标点击. 安装依赖在Windows上,不需要安装其他模块. 在OSX上,运行 sudo pip ...

  4. python操作微信手机端下载_【python】自动化连接和操作手机微信

    1. 环境配置 JDK Android SDK Appium MuMu 1.1. JDK 1.1.1. 下载安装 去华为云镜像下载JDK,我下载的版本是:jdk-8u181-windows-x64.e ...

  5. python朋友圈头像_用python一键生成头像墙,将你微信好友头像全部收集起来

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python编程与实战 ( 想要学习Python?Py ...

  6. python取模运算_python取模操作

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文最先发布在:https:www.itcoder.techpostspytho ...

  7. Python 操作微信,ntchat库

         2022/11/10更新: 删库了,具体情况未知 发现一个三方库:ntchat,可以实现对微信的操作,有微信版本限制(WeChatSetup3.6.0.18). 官方介绍:ntchat-Gi ...

  8. python微信库有哪些_GitHub - zwczou/weixin-python: 微信SDK - 包括微信支付,微信公众号,微信登陆,微信消息处理等...

    微信SDK 提供微信登陆,公众号管理,微信支付,微信消息的全套功能 文档目录 如果需要单独使用其中的某些模块,可以见文档目录的具体模块 如果需要组合在一起可以参考快速开始 目录 安装 使用pip su ...

  9. python 微信聊天机器人_python操作微信自动发消息的实现(微信聊天机器人)

    前言 最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微信,而这个库是通过微信网页版来操作微信的,现在微信网页版已 ...

  10. Python骚操作-微信远程控制电脑

    Python+微信远程控制电脑 今天带给大家一个非常有意思的 python 程序,基于 itchat 实现微信控制电脑.你可以通过在微信发送命令,来拍摄当前电脑的使用者,然后图片会发送到你的微信上.甚 ...

最新文章

  1. 广东2021高考成绩查询6,2021全国高考6月10日全部结束 预计最快6月23日可查高考成绩...
  2. python爬取百度文库付费文档_亲测免费转换百度文库付费文件
  3. [13年迁移]firefoxfocus为火狐新建焦点事件
  4. SAP Spartacus的登录验证机制 - user login Authentication
  5. linux git 修改文件,关于linux:Git删除所有未修改的文件
  6. mobx中跟新了数据视图没变化_【第1781期】MobX 简明教程
  7. C++11: final与override
  8. 如何重命名Git标签?
  9. 关于ADO.Net连接池(Connection Pool)的一些个人见解
  10. java并发编程实战读书笔记 ExecutorCompletionService
  11. [人工智能-综述-3]:人工智能与硅基生命,人类终将成为造物主
  12. 2021年中国充电桩行业发展环境(PEST)分析:随着新能源汽车的增加,充电桩也随之增加[图]
  13. 概率论基础 - 6 - 切比雪夫不等式
  14. nginx代理、白名单过滤、双域名备案代理
  15. 标书制作,全流程视频教程大全
  16. 101128 ~ 101204
  17. AI人工智能技术在车载监控系统中有哪些应用?
  18. 简单电子产品的蓝牙电路设计和PCB设计
  19. 由于无法验证发布者 所以windows阻止此软件
  20. 一键翻译PDF神器|网称最强翻译软件

热门文章

  1. 3Ds Max坐标轴切换,使用物体的世界坐标和本地坐标之间切换
  2. Non-exhaustive, Overlapping Clustering《非详尽的、可重叠的聚类》论文算法的解读(学习笔记)
  3. 微信小程序 生命周期
  4. 数字IC设计和CS选那个?
  5. 打造一双 Crypto OG 和运动达人都喜欢的鞋 — STEPN创始人分享 | Moonshot Mafia 预告...
  6. django生产环境部署(四):asgi服务器daphne处理websocket请求
  7. elasticsearch 基于文件搜索
  8. postgres 数据导入导出
  9. CCAT考试整理JAVA试题
  10. 锂电池主动均衡simulink仿真 四节电池 基于buckboost(升降压)拓扑