python登录WeChat 实现自动回复实例详解


Posted in Python onMay 28, 2019

最近实现了一些微信的简单玩法 我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以post去发送信息。

》》安装itchat这个库     pip install itchat

先来段简单的试用,实现微信的登录,运行下面代码会生成一个二维码,扫码之后手机端确认登录,就会发送一条信息给‘filehelper',这个filehelper就是微信上的文件传输助手。

import itchat

# 登录
itchat.login()
# 发送消息
itchat.send(u'你好鸭!', 'filehelper')

它会给这个文件传输助手自动发送你好鸭!

除了登录和发送消息我们还可以这么来玩,往下走~

》》实现微信好友男女比例

想统计下自己微信里好友的性别比例,当然也是很简单,先获取好友列表,统计列表里性别计数

import itchat

# 先登录
itchat.login()

# 获取好友列表
friends = itchat.get_friends(update=True)[0:]

# 初始化计数器,有男有女,当然,有些人是不填的
male = female = other = 0

# 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算
# 1表示男性,2女性
for i in friends[1:]:
 sex = i["Sex"]
 if sex == 1:
 male += 1
 elif sex == 2:
 female += 1
 else:
 other += 1

# 总数算上,好计算比例啊~
total = len(friends[1:])

# 好了,打印结果
print (u"男性好友:%.2f%%" % (float(male) / total * 100))
print (u"女性好友:%.2f%%" % (float(female) / total * 100))
print (u"其他:%.2f%%" % (float(other) / total * 100))

运行结果:

python登录WeChat 实现自动回复实例详解

》》实现微信自动回复

接着来实现一个类似qq上的自动回复,原理就是接收到消息,就发消息回去,同时发一条给文件助手,就可以在文件助手中统一查看消息。

代码很简单,来看看

#coding=utf8
import itchat

# 自动回复
# 封装好的装饰器,当接收到的消息是Text,即文字消息
@itchat.msg_register('Text')
def text_reply(msg):
 # 当消息不是由自己发出的时候
 if not msg['FromUserName'] == myUserName:
 # 发送一条提示给文件助手
 itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %
   (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),
    msg['User']['NickName'],
    msg['Text']), 'filehelper')
 # 回复给好友
 return u'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n' % (msg['Text'])

if __name__ == '__main__':
 itchat.auto_login()

 # 获取自己的UserName
 myUserName = itchat.get_friends(update=True)[0]["UserName"]
 itchat.run()

运行后会保持登录状态,开启自动回复模式,手机上查看:

python登录WeChat 实现自动回复实例详解

 python登录WeChat 实现自动回复实例详解

当然,除了文字Text信息,还可以接收图片(表情包算图片),语音,名片,地理位置,分享和类型为Note的信息(就是有人提示类的消息,例如撤回消息),把装饰器写成下面形式即可实现

@itchat.msg_register(['Map', 'Card', 'Note', 'Sharing', 'Picture','Text'])

python登录WeChat 实现自动回复实例详解

Python 相关文章推荐
python 域名分析工具实现代码
Jul 15 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
python统计文本文件内单词数量的方法
May 30 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
使用python进行文本预处理和提取特征的实例
Jun 05 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
python 五子棋如何获得鼠标点击坐标
Nov 04 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
Python语言进阶知识点总结
May 28 #Python
python图像和办公文档处理总结
May 28 #Python
python网络应用开发知识点浅析
May 28 #Python
python进程和线程用法知识点总结
May 28 #Python
selenium+python环境配置教程详解
May 28 #Python
Python从函数参数类型引出元组实例分析
May 28 #Python
python面试题Python2.x和Python3.x的区别
May 28 #Python
You might like
php校验表单检测字段是否为空的方法
2015/03/20 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
详解JavaScript作用域 闭包
2020/07/29 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
Python列表生成器的循环技巧分享
2015/03/06 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
python 编码规范整理
2018/05/05 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
请假条范文大全
2014/04/10 职场文书
企业宣传口号
2014/06/12 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
师范生见习报告
2014/10/31 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers