用Python玩转微信

 

Python玩转微信

大家每天都在用微信,有没有想过用python来控制我们的微信,不多说,直接上干货!  这个是在 itchat上做的封装  http://itchat.readthedocs.io/zh/latest/

安装模块

pip3  install  wxpy    

pip install  wxpy -i "https://pypi.doubanio.com/simple/"   #豆瓣源

1.生成微信对象

bot = Bot()   #初始化一个对象,就相当于拿到了这个人的微信,后续的一些操作都要用它来完成

2.分别找到微信对象的好友,聊天对象,朋友,群组,公众号

friends = bot.friends()  # 获取朋友            chats = bot.chats()      # 获取聊天对象 
groups = bot.groups()    #获取群聊 
maps = bot.maps() #获取公众号

# 拿到的都是列表 如果要取到对象加上角标[0]
但是这样很麻烦
推荐方法,这样写
ensure_one(bot.groups().search('全栈开发脱产11期'))
 

3.  查找某个好友

friend = bot.friends().search('袁勇')[0]

4.向好友发送消息

 1 # 发送文本
2 my_friend.send('Hello, WeChat!')
3 # 发送图片
4 my_friend.send_image('my_picture.png')
5 # 发送视频
6 my_friend.send_video('my_video.mov')
7 # 发送文件
8 my_friend.send_file('my_file.zip')
9 # 以动态的方式发送图片
10 my_friend.send('@img@my_picture.png')

5.统计微信好友的信息,比如男女比例,地域分配,等等

bot.friends().stats_text()

6.监听群里面某个人的消息

 1 from wxpy import *
2
3 bot = Bot()
4
5 # 定位公司群
6 company_group = ensure_one(bot.groups().search('公司微信群'))
7
8 # 定位老板
9 boss = ensure_one(company_group.search('老板大名'))
10
11 # 将老板的消息转发到文件传输助手
12 @bot.register(company_group)
13 def forward_boss_message(msg):
14 if msg.member == boss:
15 msg.forward(bot.file_helper, prefix='老板发言')
16
17 # 堵塞线程
18 embed() # banner 参数 – 设定欢迎内容,将在进入命令行后展示。

7.接入图灵机器人  让机器人来回复好友信息

from wxpy import *
import wxpy
from wxpy import *
bot = Bot() #初始化一个对象,就相当于拿到了这个人的微信,后续的一些操作都要用它来完成
# me = ensure_one(bot.search('袁勇'))
# me.send('哈哈')
all_friends = bot.friends() # 找到我所有的好友
tuling = Tuling(api_key='0f329eba0af742cfb34daa64f9edef8b') # 接入图灵机器人
for friend in all_friends :
@bot.register(friend)
def reply_me_friend(msg):
tuling.do_reply(msg)
embed()

8.设置最大保存信息条数,并且可以搜索

bot = Bot()
# 设置历史消息的最大保存数量为 10000 条
bot.messages.max_history = 10000

搜索所有自己发送的,文本中包含 'wxpy' 的消息

bot.messages.search('wxpy', sender=bot.self)

9.用微信监控你的程序

  1.获得专用logger

wxpy.get_wechat_logger(receiver=None, name=None, level=30)
获得一个可向指定微信聊天对象发送日志的 Logger 参数:

receiver –

当为 None, True 或字符串时,将以该值作为 cache_path 参数启动一个新的机器人,并发送到该机器人的”文件传输助手”

当为 机器人 时,将发送到该机器人的”文件传输助手”

当为 聊天对象 时,将发送到该聊天对象

name – Logger 名称

level – Logger 等级,默认为 logging.WARNING

返回:

Logger

  2.指定一个群为消息接受者

  

 1 from wxpy import *
2
3 # 初始化机器人
4 bot = Bot()
5 # 找到需要接收日志的群 -- `ensure_one()` 用于确保找到的结果是唯一的,避免发错地方
6 group_receiver = ensure_one(bot.groups().search('XX业务-告警通知'))
7
8 # 指定这个群为接收者
9 logger = get_wechat_logger(group_receiver)
10
11 logger.error('打扰大家了,但这是一条重要的错误日志...') #默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG)

  3.将异常消息发送到指定对象那里

from wxpy import get_wechat_logger

# 获得一个专用 Logger

当不设置 receiver 时,会将日志发送到随后扫码登陆的微信的"文件传输助手"

logger = get_wechat_logger() #指定接受对象

group_reciver = ensure_one(bot.groups().search('全栈开发脱产11期')) # 发送警告

logger.warning('这是一条 WARNING 等级的日志,你收到了吗?') # 接收捕获的异常

try:

1 / 0

except Exception as e

logger.exception(e)

技术指导文档:http://wxpy.readthedocs.io/zh/latest/index.html

Python玩转微信小程序的更多相关文章

  1. Python flask构建微信小程序订餐系统

    第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...

  2. Python flask构建微信小程序订餐系统☝☝☝

    Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py  项目配置文件 Flask之flask-script模块使 ...

  3. Python flask构建微信小程序订餐系统✍✍✍

    Python flask构建微信小程序订餐系统  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题, ...

  4. python爬取微信小程序(实战篇)

    python爬取微信小程序(实战篇) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90452656 展开 一.背景介绍 近期有需求需要抓 ...

  5. Python爬取微信小程序(Charles)

    Python爬取微信小程序(Charles) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90045204 一.前言 最近需要获取微信小 ...

  6. 玩转微信小程序

    原文链接 2007 年 1 月 9 号,苹果一代在功能机盛行的年代中出世. 2017 年 1 月 9 号,微信小程序在重型app风靡的压力下上线. 苹果的出世掀起了互联网一波又一波的浪潮,而微信小程序 ...

  7. python flask豆瓣微信小程序案例

    项目步骤 定义首页模板index.html <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  8. Python Flask构建微信小程序订餐系统 学习 资源

    一.Flask MVC框架结构  1.1实际项目结构   1.2application.py  项目配置文件Flask之flask-script模块使用  static.py 文件(部署到生成环境不需 ...

  9. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

随机推荐

  1. 201271050130-滕江南-《面向对象程序设计(java)》第十三周学习总结

      201271050130-滕江南-<面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daiz ...

  2. Drop_out--防止过拟合

    With probability keep_prob, outputs the input element scaled up by 1 / keep_prob, otherwise outputs  ...

  3. 快读&快写模板【附O2优化】

    快读&快写模板 快读快写,顾名思义,就是提升输入和输出的速度.在这里简单介绍一下几种输入输出的优劣. C++ cin/cout 输入输出:优点是读入的时候不用管数据类型,也就是说不用背scan ...

  4. BZOJ4027/LG4107 「HEOI2015」兔子与樱花 树形DP+贪心

    问题描述 LG4107 题解 首先,我们可以直接令结点 \(x\) 的权值为 \(c[x]+son_x\) ,发现将 \(x,y\) 合并,相当于增加 \(c[x]+c[y]-1\) 的重量. 容易想 ...

  5. Centos7 yum安装MySQL5.7.25

    1 下载并安装MySQL官方的 Yum Repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-commun ...

  6. Python进阶-XVIII 封装、(属性、静态方法、类方法)语法糖、反射

    1.封装 类中的私有化:属性的私有化和方法的私有化 会用到私有的这个概念de场景 1.隐藏起一个属性 不想让类的外部调用 2.我想保护这个属性,不想让属性随意被改变 3.我想保护这个属性,不被子类继承 ...

  7. Fontconfig error: Cannot load config file "infinality/conf.d"

    reference: https://forums.gentoo.org/viewtopic-t-1079210-start-0.html resolved with following method ...

  8. 【2019.7.26 NOIP模拟赛 T3】化学反应(reaction)(线段树优化建图+Tarjan缩点+拓扑排序)

    题意转化 考虑我们对于每一对激活关系建一条有向边,则对于每一个点,其答案就是其所能到达的点数. 于是,这个问题就被我们搬到了图上,成了一个图论题. 优化建图 考虑我们每次需要将一个区间向一个区间连边. ...

  9. 图片服务器FastDFS的安装及使用

    FastDFS介绍 FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS ...

  10. 进程间通信的信道与控制(io机制)

    进程间通信 = 信道 + 控制(状态) + io 信道: 1.流式信道: 2.队列信道: 3.共享内存信道: 控制机制: 数据就绪状态的通知与数据获取机制. 1.信号: 2.循环: 3.io机制