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采集博客中上传的QQ截图文件
Jul 18 Python
Python抓取百度查询结果的方法
Jul 08 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
Python中修改字符串的四种方法
Nov 02 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python计算二维矩形IOU实例
Jan 18 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
Python lambda表达式原理及用法解析
Aug 18 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
python实现双链表
May 25 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基础知识回顾
2012/08/16 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python入门篇之字典
2014/10/17 Python
理解Python中的With语句
2015/02/02 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python字符编码判断方法分析
2016/07/01 Python
Python自动生产表情包
2017/03/17 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python装饰器用法示例小结
2018/02/11 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
Python错误处理操作示例
2018/07/18 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
python顺序执行多个py文件的方法
2019/06/29 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
三星印度官网:Samsung印度
2019/08/03 全球购物
药剂专业学生求职信范文
2013/12/28 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers