python wxpy 微信机器人

itchat 模块 教学文档:itchat.
wxpy 模块 教学文档 : wxpy.

基础阶段

wxpy模块 的安装
命令行安装:
pip install wxpy
pycharm 安装:
File -> Settings ->Project : xx x ->project Interpreter -> + -> wxpy -> install

1.给自己的微信助手发送消息

#机器人对象,给自己微信的文件传输助手发送消息
from wxpy import *
bot = Bot(cache_path=True)
#机器人账号自身
#myself = bot.self
#想文件传输助手发送消息
bot.file_helper.send('Goodbye of world')

2.基础测试

from wxpy import *
bot = Bot(cache_path=True)
聊天对象puid
bot.enable_puid('wxpy_puid.pkl')
my_friend = bot.friends().search('好友备注')[0]   #wxpy教程文档的 “获取聊天对象”
my_group = bot.groups().search('群昵称')[0]
print('this ID'+my_friend.puid)
my_friend.send('在吗?')
my_friend.send_image('u0.jpg') #可以将image改成其他的文件发送

pkl文件是python的储存文件格式
打开方式:

import pickle
t = open('wxpy_puid.pkl','rb')
data = pickle.load(t)
print(data)

测是好友是否在某个群中

if my_friend in my_group:print('yes,{}在{}中!'.format(my_friend.name,my_group.name))

输出某个群中人所有好友语句

for name in my_group:print(name)

实际类
好友 Friend
群聊 Group
群成员 Member
公众号 MP

3.小实战

1.将群中的某个好友发言转发给文件助手

from wxpy import *
bot = Bot(cache_path=True)
my_group = ensure_one(bot.groups().search('群名称'))
my_friend = ensure_one(friend_group.search('群名称'))
@bot.register(my_group)
def forward_pan_message(msg):if msg.member == my_friend:msg.forwad(bot.file_helper,prefix='xx说')
embed()  # 堵塞线程

附:@bot.register(my_group)
预先将特定聊天对象的特定类型消息,注册到对应的处理函数,以实现自动回复等功能。

# 打印所有*群聊*对象中的*文本*消息
@bot.register(Group, TEXT)
def print_group_msg(msg):print(msg)

2.忽略 “某个群” 的所有消息
回复好友 “xx” 和其他群聊中被 @ 的 TEXT 类消息
打印所有其他消息

from wxpy import *
bot = Bot(cache_path=True)
my_friend = bot.friends().search('好友备注')[0]
my_group = bot.groups().search('群名称')[0]
@bot.register()
def just_print(msg):# 打印消息print(msg)
@bot.register([my_friend, Group], TEXT)
def auto_reply(msg):# 如果是群聊,但没有被 @,则不回复if isinstance(msg.chat, Group) and not msg.is_at:returnelse:# 回复消息内容和类型return '收到消息: {} ({})'.format(msg.text, msg.type)@bot.register(my_group)
def ignore(msg):# 啥也不做return
embed()

3.输出自己微信好友的一些信息并统计相关情况

from wxpy import *
# 初始化机器人,扫码登录
# cache_path保持登录,Bot初始化中可以加入参数:console_qr是否在控制台显示二维码
bot = Bot(cache_path=True)
print('登录成功')
# bot.join()
bot.enable_puid('wxpy_puid.pkl')
friends = bot.friends()
sex_male = 0
sex_female = 0
unkown = 0
for i in range(len(friends)):print('friends[i]:\t',friends[i])print('nick_name:\t', friends[i].nick_name)   # 微信好友的微信昵称print('name:\t', friends[i].name)     # 扫码用户对该微信好友的备注print('remark_name:\t', friends[i].remark_name)  print('bot:\t',friends[i].bot)# 机器人对象 格式为:<Bot: 备注名称>print('raw:\t', friends[i].raw) # 微信好友对应的用户详细信息json数据print('puid:\t', friends[i].puid)  # 微信好友对应的puid值print('Nickname:\t', friends[i].raw['NickName'])  # 打印备注信息print('Province:\t', friends[i].raw['Province'])   # 打印好友所在的省份print('City:\t\t\t', friends[i].raw['City'])print('性别:\t', friends[i].raw['Sex'])if friends[i].raw['Sex'] == 1:sex_male += 1elif friends[i].raw['Sex'] == 2:sex_female += 1else:unkown += 1
print('count of male is:', sex_male, 'count os female is:', sex_female,'不知道性别的共:', unkown)
print('共有好友:', len(friends))
# bot.logout()
# print('退出登录')

4.找到好友列表中昵称为“xx”的好友,监控聊天,打印该好友发来的文本消息,监控群聊消息,打印群聊中的文本消息

from wxpy import *
# 初始化机器人,扫码登录
# cache_path保持登录,Bot初始化中可以加入参数:console_qr是否在控制台显示二维码
bot = Bot(cache_path=True)
print('登录成功')
myfriend = bot.friends().search(u'马萌妹')[0]
@bot.register(myfriend, TEXT)
def print_msg1(msg1):print(msg1)
# 监控群聊消息
@bot.register(Group, TEXT)
def print_msg(msg):print(msg)
bot.join()

5.自动回复,图灵网站的api

from wxpy import *
bot = Bot(cache_path=True, console_qr=False)
tuling = Tuling(api_key='你在tuling网站申请的api_key')
myfriend = bot.friends().search(u'好友备注')[0]
myfriend1 = bot.self
print(myfriend)
@bot.register()
def reply_msg(msg):sender_username = msg.sender.raw['UserName']# 输出发送信息的好友或者群聊中的人员信息print(sender_username)# 判断是否和我设置的想要自动恢复到人一致如果一致调用tuling进行消息回复if sender_username == myfriend.raw['UserName']:# 输出或得到的消息print(msg)# 调用tuling机器人回复消息,并将消息赋值给messagemessage = tuling.do_reply(msg)# 输出回复消息的内容print(message)
# 阻塞进程
bot.join()

6.定时自动发送

from __future__ import unicode_literals
from threading import Timer
from wxpy import *
import requests
import random
bot = Bot(cache_path=True)
def get_news():    #网络爬虫url = "http://open.iciba.com/dsapi/"r = requests.get(url)content = r.json()['content']note = r.json()['note']return content, note
def send_news():try:contents = get_news()# 你朋友的微信名称,不是备注,也不是微信帐号。my_friend = bot.friends().search(u'月微凉')[0]my_friend.send(contents[0])my_friend.send(contents[1])my_friend.send(u"晚安")# 可以设置每86400秒(1天),发送1次t = Timer(300, send_news)# 为了防止时间太固定,于是决定对其加上随机数ran_int = random.randint(0, 100)t = Timer(300 + ran_int, send_news)t.start()except:# 你的微信名称,不是微信帐号。my_friend = bot.friends().search('Hhhh')[0]my_friend.send(u"哦豁,今天消息发送失败了")
if __name__ == "__main__":send_news()

python wxpy模块学习相关推荐

  1. 原创|Python wxpy模块的有趣应用,微信机器人,微信好友分析搞定

    ↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析 简说Python推荐 来源:简说Python作者:老表 大家好,我是老表,今天这篇文章是两年半 ...

  2. python logging模块学习

    python 的日志logging模块学习 1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.in ...

  3. 初识python wxpy模块之人工智能机器猫

    先说一下我是怎么了解到这个wxpy模块的: 首先说明一下我是业余py爱好者,一开始确实是不知道这个流弊的模块,我是想突然想搞一个微信支付的微服务供其他模块调用,之前(好久好久了吧)去了解微信支付和支付 ...

  4. python 各种模块学习

    from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...

  5. python wxpy模块_wxpy微信模块学习之常用组件

    聊天机器人 图灵 classwxpy.Tuling(api_key=None) 与 wxpy 深度整合的图灵机器人,内置的 api key 存在调用限制,建议自行申请. 参数: api_key -- ...

  6. Python日志模块学习,从这里开始...

    消息与记录 刚才谈到了关于历史账号的文章与消息记录,所以今天想跟大家聊聊Python关于消息记录的模块:日志管理模块 logging. 学习python的第一课,肯定都是print('Hello Wr ...

  7. python Re模块学习

    最近自己学习了正则表达式,自我感觉已经能够满足日常的使用了,需要去了解python提供的匹配正则表达式的工具包,学习参考官方文档,博客相当于笔记,毕竟人家官方文档才是最权威的. 文章目录 一.写在前面 ...

  8. python——wxpy模块实现微信尬聊(基于图灵机器人)

    wxpy(微信机器人)是在itchat基础上开发的微信个人功能服务API,基本可以实现微信各种拓展功能, API文档http://wxpy.readthedocs.io/zh/latest/index ...

  9. python wxpy模块,python wxpy模块 (一)简单上手

    简单上手 登陆微信: 导入模块 from wxpy import * 初始化机器人,扫码登陆 bot = Bot() 找到好友: 搜索名称含有 "游否" 的男性深圳好友 my_fr ...

最新文章

  1. MDSF:在线查看【模型驱动软件工厂】文章汇总
  2. 寻找不合群的数据(异常值)
  3. P4332 [SHOI2014]三叉神经树(LCT)
  4. overload、override、new解释
  5. ANTLR和网络:一个简单的例子
  6. 编译C/C++为dll供Python调用
  7. Keras-4 mnist With CNN
  8. docker nginx部署web应用_实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署...
  9. 用typescript完成倒计时_「2019 JSConf.Hawaii - Brie.Bunge」大规模应用 TypeScript
  10. java fttp连接服务器操作
  11. 移动wap浏览器网页调试工具vconsole和eruda
  12. php实现室内地图导航,概述-室内地图 JS API | 高德地图API
  13. 联通4g 小米不显示无服务器,小米旗舰机断流严重,信号满格消息却发不出去?...
  14. usleep()和sleep()的区别
  15. 跨平台下移动应用的开发框架对比与分析
  16. QT应用编程:基于QMediaPlayer开发音视频播放器
  17. 湖南省高级工程师计算机考试试题,湖南土建中级职称历年考试真题及答案!
  18. 某宝虚拟CDK自动发货源码 易语言
  19. 东北大学计算机考研哪个方向好,2012考研:东北大学计算机三个方向区别
  20. 生于MVP,死于PMF

热门文章

  1. C++异常处理之terminate函数
  2. 3D MAX导出插件编写I
  3. php接收mq,php的mq客户端获取队列方法改造
  4. 苹果的Safari已成为新的IE浏览器
  5. 删除数据库表中重复数据的总结(oracle)
  6. 运行时异常与检查异常区别
  7. 20180416-H · Global Mortality · ggplot2 地图 gganimate 动图 动态地图 · R 语言数据可视化 案例 源码
  8. autojump的安装和简单使用(环境:ubuntu14.04)
  9. zsh+autojump
  10. python网页爬虫菜鸟教程_python菜鸟 想做一个简单的爬虫 求教程