目前有一个项目 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操作微信电脑版_python操作微信客户端:WechatPCAPI库实现自动化回复相关推荐

  1. python操作微信电脑版_python 通过微信发送消息控制电脑

    [Python] 纯文本查看 复制代码# coding=utf-8 import itchat from tkinter import * from tkinter import messagebox ...

  2. python操作微信电脑版_Python学习教程:教你用Python通过微信来控制电脑摄像头

    如果说强大的标准库奠定了Python发展的基石,丰富的第三方库则是python不断发展的保证.今天的Python学习教程就来通过itchart库来实现通过微信对电脑的一些操作. 1.安装库 安装itc ...

  3. python操作微信电脑版_Python使用itchat模块实现简单的微信控制电脑功能示例

    本文实例讲述了Python使用itchat模块实现简单的微信控制电脑功能.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding=UTF-8 import request ...

  4. python微信库we_python微信库we_python操作微信客户端:WechatPCAPI库实现自动化回复...

    目前有一个项目 WechatPCAPI 可以对微信进行操作,简单来说它是直接操作 PC 版微信客户端的,当然它有一定不足之处就是:PC 版微信客户端和 Python 都需要使用指定版本的,本文我们使用 ...

  5. python微信库we_python操作微信客户端:WechatPCAPI库实现自动化回复

    目前有一个项目 WechatPCAPI 可以对微信进行操作,简单来说它是直接操作 PC 版微信客户端的,当然它有一定不足之处就是:PC 版微信客户端和 Python 都需要使用指定版本的,本文我们使用 ...

  6. python操作微信电脑版_PC端微信数据库解密Python版

    本帖最后由 5032479833 于 2020-5-28 11:40 编辑 Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [ ...

  7. Linux和Mac下的微信电脑版electronic-wechat(非官方)

    2016-10-15更新 添加了3.3–为微信电脑版增加桌面启动器(快捷方式) CSDN GitHub Linux和Mac下的微信电脑版electronic-wechat(非官方) AderXCodi ...

  8. Linux和Mac下的微信电脑版electronic-wechat 非官方

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 2016 ...

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

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

  10. python去掉json中的转义符_企业微信表情符自动转义怎么用?企业微信电脑版这样做...

      企业微信有一个独特的功能叫做"表情符自动转义",其实通俗点说就是表情的快捷键,设定了这个之后,可以在键盘上点击这个符号,而在企业微信电脑版上显示的就是对应的表情,对于快速恢复很 ...

最新文章

  1. 自定义数字格式字符串输出示例
  2. Centos7系统下httpd各种方式实现与配置
  3. 小裁缝返乡创业做儿童品牌,如今身家数十亿冲刺上市
  4. Android性能优化之内存篇(三)
  5. python requests 报错 Connection aborted ConnectionResetError RemoteDisconnected 解决方法
  6. 蓝桥杯-c++_ch04_02_修正版(java)
  7. 修改nullMyEclipse 设置文件的默认编码
  8. mysql报错级别_MySQL启动出现几个警告级别错误
  9. win7系统出现蓝屏0x0000003b怎么解决
  10. SpringBoot+Prometheus+Grafana实现应用监控和报警
  11. DAY04 WINDOWS 文件的共享以及FTP服务器的搭建
  12. eclipse远程连接hadoop_Hadoop群启集群
  13. android 使用so库,Android 使用SO库
  14. 【别再说不懂linux命令了,再给你】
  15. php 设置针式打印机纸张,针式打印机设置方法 针式打印机打印连续纸设置技巧【图文】...
  16. 密码学简史(一)--- 谍战中的古典密码学
  17. 如何防止你的网站被攻击?
  18. Latex——插入罗马字母或更改字体为公式体
  19. 服务器的所有网站共用443,多个ssl证书共用443端口apache
  20. pid的matlab仿真,用MATLAB对PID控制做简单的仿真

热门文章

  1. ContextCapture APP 不需电脑用手机就能实景三维建模
  2. 搜狗站群代码之搜狗批量推送工具
  3. 新学习之 jQuery-boxy
  4. 前端资源汇总-酷站分享[转载]
  5. vue移动端登录页面(包含国际区号选择、账号密码登录、手机登录和忘记密码)
  6. log4j2配置详解及自定义Appender
  7. 华为员工年薪 200 万!真相让人心酸!
  8. 美元MogaFX指数介绍(二)
  9. .webp格式图片详解
  10. 从0开始的LFS 10.0