• 用Python玩转微信


    Python玩转微信

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

    安装模块

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

    1.生成微信对象

    1 bot = Bot()   #初始化一个对象,就相当于拿到了这个人的微信,后续的一些操作都要用它来完成
    2 bot = Bot(cache_path=True)  #缓存登陆状态

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

    1 friends = bot.friends()  # 获取朋友            chats = bot.chats()      # 获取聊天对象 
    2 groups = bot.groups()    #获取群聊 
    3 maps = bot.maps()        #获取公众号
    4 
    5 # 拿到的都是列表  如果要取到对象加上角标[0]
    6 但是这样很麻烦
    7 推荐方法,这样写
    8 ensure_one(bot.groups().search('全栈开发脱产11期'))

    3.  查找某个好友

    1 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.统计微信好友的信息,比如男女比例,地域分配,等等

    1 bot.friends().stats_text()

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

     1 from wxpy import *
     2 
     3 bot = Bot()
     4 # 定位公司群
     5 company_group = ensure_one(bot.groups().search('公司微信群'))
     6  
     7 # 定位老板
     8 boss = ensure_one(company_group.search('老板大名'))
     9 
    10 # 将老板的消息转发到文件传输助手
    11 @bot.register(company_group)
    12 def forward_boss_message(msg):
    13      if msg.member == boss:
    14          msg.forward(bot.file_helper, prefix='老板发言')
    15  
    16 # 堵塞线程
    17 embed()

    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.设置最大保存信息条数,并且可以搜索

    1 bot = Bot()
    2 # 设置历史消息的最大保存数量为 10000 条
    3 bot.messages.max_history = 10000
    4 
    5 # 搜索所有自己发送的,文本中包含 'wxpy' 的消息
    6 bot.messages.search('wxpy', sender=bot.self)

     9.用微信监控你的程序

          1.获得专用logger

     1 wxpy.get_wechat_logger(receiver=None, name=None, level=30)
     2 获得一个可向指定微信聊天对象发送日志的 Logger
     3 
     4 参数:    
     5 receiver –
     6 当为 None, True 或字符串时,将以该值作为 cache_path 参数启动一个新的机器人,并发送到该机器人的”文件传输助手”
     7 当为 机器人 时,将发送到该机器人的”文件传输助手”
     8 当为 聊天对象 时,将发送到该聊天对象
     9 name – Logger 名称
    10 level – Logger 等级,默认为 logging.WARNING
    11 返回:    
    12 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.将异常消息发送到指定对象那里

     1 from wxpy import get_wechat_logger
     2 
     3 # 获得一个专用 Logger
     4 # 当不设置 `receiver` 时,会将日志发送到随后扫码登陆的微信的"文件传输助手"
     5 logger = get_wechat_logger()
     6 
     7 #指定接受对象
     8 group_reciver = ensure_one(bot.groups().search('全栈开发脱产11期'))
     9 
    10 # 发送警告
    11 logger.warning('这是一条 WARNING 等级的日志,你收到了吗?')
    12 
    13 # 接收捕获的异常
    14 try:
    15     1 / 0
    16 except Exception as e 
    17     logger.exception(e)

    源自:https://yq.aliyun.com/articles/622209

  • 相关阅读:
    iPad 3g版完美实现打电话功能(phoneitipad破解)
    vb.NET基础总结
    PMP考试的过与只是
    Oracle基础学习5-- Oracle权限之”角色”
    linux内存操作----kernel 3.5.X copy_from_user()和copy_to_user()
    猜数字游戏
    pthread_t definition
    POJ 2057 The Lost House
    简单截图功能实现
    java实现罗马数字转十进制
  • 原文地址:https://www.cnblogs.com/chenlove/p/9981769.html
Copyright © 2020-2023  润新知