Python玩转微信小程序
用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当不设置
logger = get_wechat_logger() #指定接受对象receiver
时,会将日志发送到随后扫码登陆的微信的"文件传输助手"
group_reciver = ensure_one(bot.groups().search('全栈开发脱产11期')) # 发送警告
logger.warning('这是一条 WARNING 等级的日志,你收到了吗?') # 接收捕获的异常
try:
1 / 0
except Exception as e
logger.exception(e)

Python玩转微信小程序的更多相关文章
- Python flask构建微信小程序订餐系统
第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...
- Python flask构建微信小程序订餐系统☝☝☝
Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py 项目配置文件 Flask之flask-script模块使 ...
- Python flask构建微信小程序订餐系统✍✍✍
Python flask构建微信小程序订餐系统 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题, ...
- python爬取微信小程序(实战篇)
python爬取微信小程序(实战篇) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90452656 展开 一.背景介绍 近期有需求需要抓 ...
- Python爬取微信小程序(Charles)
Python爬取微信小程序(Charles) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90045204 一.前言 最近需要获取微信小 ...
- 玩转微信小程序
原文链接 2007 年 1 月 9 号,苹果一代在功能机盛行的年代中出世. 2017 年 1 月 9 号,微信小程序在重型app风靡的压力下上线. 苹果的出世掀起了互联网一波又一波的浪潮,而微信小程序 ...
- python flask豆瓣微信小程序案例
项目步骤 定义首页模板index.html <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Python Flask构建微信小程序订餐系统 学习 资源
一.Flask MVC框架结构 1.1实际项目结构 1.2application.py 项目配置文件Flask之flask-script模块使用 static.py 文件(部署到生成环境不需 ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
随机推荐
- tomcat快速入门
简介 Tomcat 是什么 Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理 ...
- day70_10_16drf组件响应模块,异常模块和序列化模块。
一.解析模块 为什么要配置解析模块? 1)drf给我们通过了多种解析数据包方式的解析类. 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析. 3)全局配置就是针对每一个视图 ...
- python27期python连接数据库:
import pymysql创建connectinon对象:con = pymysql.connect(host = "localhost",user = "root&q ...
- 浅谈C++ STL deque 容器
浅谈C++ STL deque 容器 本篇随笔简单介绍一下\(C++STL\)中\(deque\)容器的使用方法及常见使用技巧. deque容器的概念 \(deque\)的意义是:双端队列.队列是我们 ...
- 关于npm(一)
npm install X: 把X包安装到node_modules目录中修改package.json运行npm install命令时,不会自动安装X npm install X –save: 把X包安 ...
- Java进阶的道路,怎么成为大牛?
已然励志在java路上走的更远,那就有必要了解java的途径.先看图 image.png 愈加细化的细节如下 一: 编程基础 不管是C仍是C++,不管是Java仍是PHP,想成为一名合格的程序员,根 ...
- C语言第2
今个那老哥替我刷题,然后遇到一个打印中文编码得问题,我多嘴一问,为啥 用 unsiged 然后他让我换成char试试:然后出现了以下结果 #include <stdio.h> #inclu ...
- Python源码:字典
一.创建增加修改 1.实现代码 #创建 stu_info = { "xiedi":28, "liuhailin":27,"daiqiao": ...
- Linux应试技巧
前言:此文是为了CSP-S第二轮认证所用系统NOI-Linux的写的,但其他的Linux系统也可以按照相同或类似的方法进行配置. 配置NOI-Linux 我大约是一个月以前由于比赛的原因才开始接触NO ...
- 物联网架构成长之路(31)-EMQ基于HTTP权限验证
看过之前的文章就知道,我之前是通过搞插件,或者通过里面的MongoDB来进行EMQ的鉴权登录和权限验证.但是前段时间发现,还是通过HTTP WebHook 方式来调用鉴权接口比较适合实际使用.还是实现 ...