你们天天都在用微信,有没有想过用python来控制咱们的微信,很少说,直接上干货! 这个是在 itchat上作的封装 http://itchat.readthedocs.io/zh/latest/python
安装模块api
pip3 install wxpy pip install wxpy -i "https://pypi.doubanio.com/simple/" #豆瓣源
bot = Bot() #初始化一个对象,就至关于拿到了这我的的微信,后续的一些操做都要用它来完成
friends = bot.friends() # 获取朋友 chats = bot.chats() # 获取聊天对象
groups = bot.groups() #获取群聊
maps = bot.maps() #获取公众号
# 拿到的都是列表 若是要取到对象加上角标[0]
可是这样很麻烦
推荐方法,这样写
ensure_one(bot.groups().search('全栈开发脱产11期'))
friend = bot.friends().search('袁勇')[0]
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')
bot.friends().stats_text()
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 参数 – 设定欢迎内容,将在进入命令行后展现。
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()
bot = Bot() # 设置历史消息的最大保存数量为 10000 条 bot.messages.max_history = 10000 # 搜索全部本身发送的,文本中包含 'wxpy' 的消息 bot.messages.search('wxpy', sender=bot.self)
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.将异常消息发送到指定对象那里ide
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)