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实现的简单算术游戏实例
May 26 Python
Python松散正则表达式用法分析
Apr 29 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
Python 实现12306登录功能实例代码
Feb 09 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
用django设置session过期时间的方法解析
Aug 05 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
python 带时区的日期格式化操作
Oct 23 Python
Python进程间的通信之语法学习
Apr 11 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
laradock环境docker-compose操作详解
2019/07/29 PHP
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
three.js加载obj模型的实例代码
2017/11/10 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
python pytest进阶之fixture详解
2019/06/27 Python
python绘制封闭多边形教程
2020/02/18 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
Python可以实现栈的结构吗
2020/05/27 Python
查看keras的默认backend实现方式
2020/06/19 Python
python中sys模块是做什么用的
2020/08/16 Python
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
自我评价个人范文
2013/12/16 职场文书
酒店端午节促销方案
2014/02/18 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
婚纱店策划方案
2014/05/22 职场文书
学校献爱心活动总结
2014/07/08 职场文书
公司仓库管理制度
2015/08/04 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
详解非极大值抑制算法之Python实现
2021/06/28 Python
go goroutine 怎样进行错误处理
2021/07/16 Golang