用wxpy玩转微信

模拟登陆

from wxpy import *
bot = Bot()

寻找聊天对象

通过机器人对象 Botchats(), friends()groups(), mps() 方法, 可分别获取到当前机器人的 所有聊天对象、好友、群聊,以及公众号列表。

from wxpy import *
bot = Bot()
#获取公众号列表
my_friend = bot.mps()
print(my_friend)

获取之后可以用send方法进行发送消息

# 发送文本
my_friend.send('Hello, WeChat!')
# 发送图片
my_friend.send_image('my_picture.png')
# 发送视频
my_friend.send_video('my_video.mov')
# 发送文件
my_friend.send_file('my_file.zip')
# 以动态的方式发送图片
my_friend.send('@img@my_picture.png')

获取聊天对象之后你可以查看你微信圈里好友的性别、年龄、地点等属性, 可以做成统计图如下:

image.png

消息处理

每当机器人接收到消息时,会自动执行以下两个步骤

  • 将消息保存到 Bot.messages 中
  • 查找消息预先注册的函数,并执行(若有匹配的函数)
#将公司老板的群里面的重要发言转发出来
from wxpy import *

bot = Bot()

# 定位公司群
company_group = ensure_one(bot.groups().search('公司微信群'))

# 定位老板
boss = ensure_one(company_group.search('老板大名'))

# 将老板的消息转发到文件传输助手
@bot.register(company_group)
def forward_boss_message(msg):
    if msg.member == boss:
        msg.forward(bot.file_helper, prefix='老板发言')

# 堵塞线程
embed()

实现自动回复功能

if __name__ =="__main__":
    SourceSavePath = './RecieveFile/'

    bot = Bot(cache_path=True)
    myFriend = bot.friends()  # 被处理消息的对象或对象集合


    # myFriend += bot.groups().search('GroupName') #添加群

    @bot.register(myFriend)  # 注册消息处理方法
    def Del_GroupMsg(msg):
        print(msg.sender.name, ':', msg.text, 'Msg Type:', msg.type)
        msg.sender.mark_as_read()
        if msg.type == TEXT:  
            return aiqa(msg.text)
        elif msg.type == PICTURE:  # 如果接受到图片,就自动回复同样的图片
            print('this is PICTURE:{}'.format(msg.file_name))
            savaPath = SourceSavePath + msg.file_name
            msg.get_file(savaPath)
            msg.reply_image(savaPath)
        else:  # 其它的就转发回给发送人
            msg.forward(msg.sender)
    embed()

用微信监控你的程序

微信中建立一个群聊,并在里面加入需要关注这些日志的人员。然后把这个群作为接收者。

from wxpy import get_wechat_logger

# 获得一个专用 Logger
# 当不设置 `receiver` 时,会将日志发送到随后扫码登陆的微信的"文件传输助手"
logger = get_wechat_logger()

# 发送警告
logger.warning('这是一条 WARNING 等级的日志,你收到了吗?')

# 接收捕获的异常
try:
    1 / 0
except:
    logger.exception('现在你又收到了什么?')

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Snownlp简介情感分析

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于...

    DC童生
  • 爬虫篇——基础知识介绍爬虫步骤内容请求网页(requests库)html页面解析网页

    前言: 爬虫是信息和数据获取的一种手段,写此文一方面梳理一下自己学习知识的思路,如果再能帮到一些人就更好了。 爬虫步骤 爬虫的步骤一般类似,步骤如下: ...

    DC童生
  • NLP(1)——词向量one hot编码词向量编码思想Word2VecEmbeddingSkip-gram的原理负采样

    DC童生
  • Python入门基本语法

    以下主要讲述Python的一些基础语法,包含行的缩进在python中的重要意义,python中常见的保留字和引号的使用,如何实现单行注释和多行注释。

    py3study
  • my python FAQ

    python编码规范 http://google-styleguide.googlecode.com/svn/trunk/pyguide.html 判断对象是否...

    财主刀刀
  • python3 教程

    编程代码便是:“Hello World!”,以下代码使用Python输出“Hello World” :

    py3study
  • 程序员迁移模式

    上图中红颜色标记了目前最常见的“终端节点”(所谓终端节点是人们在这里停下来因为他们找不到更好的东西)。终端节点是:Rust,Java,Go,Python 3,J...

    歪脖贰点零
  • 优化重症监护病房败血症的药物治疗:从强化学习到预评估(CS AI)

    我们的目标是建立一个框架,使优化干预措施的强化学习(RL)能够追溯性地允许我们采用符合法规的途径,对临床部署中所学政策进行前瞻性临床测试。我们关注重症监护病房中...

    RockNPeng
  • Endnote的文献统计分析

    文献数目统计,对一个未知领域和文献计量学类的文章来说,是必不可少的内容。一般来说,常用的文献计量学方法,可以将文献题录进行统计,从而将数据作图,放在综述文献或者...

    百味科研芝士
  • 如何手动创建SAP S/4HANA的生产订单

    A production order specifies which material is to be produced, where it is to be...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券