python登录WeChat 实现自动回复实例详解
作者:Giraffe''stooth 发布时间:2021-05-25 03:22:22
标签:python,WeChat,自动回复
最近实现了一些微信的简单玩法 我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以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))
运行结果:
》》实现微信自动回复
接着来实现一个类似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()
运行后会保持登录状态,开启自动回复模式,手机上查看:
当然,除了文字Text信息,还可以接收图片(表情包算图片),语音,名片,地理位置,分享和类型为Note的信息(就是有人提示类的消息,例如撤回消息),把装饰器写成下面形式即可实现
@itchat.msg_register(['Map', 'Card', 'Note', 'Sharing', 'Picture','Text'])
来源:https://www.cnblogs.com/Wang-jialu/p/10936414.html


猜你喜欢
- 在这里输入命令:操作命令:1.更新Anaconda:conda update conda更新所有包conda update --all3.添
- 包含Contains(s,substr string) bool判断s是否包含substr true:包含 false:不包含例子: &nb
- 定义切片区别于数组,是引用类型, 不是值类型。数组是固定长度的,而切片长度是可变的,我的理解是:切片是对数组一个片段的引用。var s1 [
- 先学会文件的读写!比如像以前在学校读书的时候,第一门编程课设计要求是制作学生管理系统。这就需要使用文件来处理(也可以用数据库,但是一般C语言
- requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢
- python 利用pywifi模块实现连接网络破解wifi密码实时监控网络,具体内容如下:import pywififrom pywifi
- 环境:numpy,pandas,python3在机器学习和深度学习的过程中,对于处理预测,回归问题,有时候变量是时间,需要进行合适的转换处理
- 输入:[1.0000, -1.0000, 3.0000]课本中的标准差计算公式:按照上述公式计算:Numpy中的std计算:import n
- 题目:汉诺塔给出最优解,如果对汉诺塔的定义有不了解,请翻看数据结构教材。除了最基本的之外,还有一题,给定一个数组,arr=[2,3,1,2,
- python 创建List二维列表lists = [[] for i in range(3)] # 创建的是多行三列的二维列表for i i
- 内置数据类型Python的内置数据类型既包括数值型和布尔型之类的标量,也包括 更为复杂的列表、字典和文件等结构。数值Python有4种数值类
- 本文实例讲述了Python实现可自定义大小的截屏功能。分享给大家供大家参考,具体如下:蝈蝈这两天正忙着收拾家当去公司报道,结果做PHP的发小
- 首先我们来看个示例:<form name="buyerForm" method="post"
- 引言pycharm 在运行后会产生大量的配置文件并默认存入C盘中,这样会占据大量的空间,因此,我们需要更改配置文件的位置。通过查询一些资料,
- 前言:keras默认提供了如何获取某一个层的某一个节点的输出,但是没有提供如何获取某一个层的输出的接口,所以有时候我们需要获取某一个层的输出
- 参数让我们进一步看看CPU的数量是如何影响这些参数的。 参数fast_start_parallel_rollback Oracle并行机制中
- SqlServer帮助中对扩展属性的描述是: The Extended Properties property sets or retrie
- 单线程实现单线程实现道理比较简单,这里尝试Soket连接3389,连接成功说明端口开放,否则说明没有开远程服务。随便修改了一下就ok了,代码
- 1. 2D坐标轴1.1 绘制简单的曲线import matplotlib.pyplot as pltimport numpy as npx=
- mysql 8.0.25 解压版安装教程,供大家参考,具体内容如下1、下载(官方推荐的是下载安装版本,但是解压版更便捷),下载地址2、解压,