前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python玩转微信

用Python玩转微信

作者头像
Python研究者
发布2020-09-28 11:49:08
2.1K0
发布2020-09-28 11:49:08
举报
文章被收录于专栏:Python研究者

Python玩转微信

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

安装模块

代码语言:javascript
复制
pip3  install  wxpy     
pip install  wxpy -i "https://pypi.doubanio.com/simple/" 
#豆瓣源

1.生成微信对象

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

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

代码语言:javascript
复制
friends = bot.friends()  # 获取朋友            chats = bot.chats()      # 获取聊天对象
groups = bot.groups()    #获取群聊
maps = bot.maps()        #获取公众号

# 拿到的都是列表  如果要取到对象加上角标[0]
但是这样很麻烦
推荐方法,这样写
ensure_one(bot.groups().search('全栈开发脱产11期'))

3. 查找某个好友

代码语言:javascript
复制
friend = bot.friends().search('袁勇')[0]

4.向好友发送消息

代码语言:javascript
复制
# 发送文本
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')

5.统计微信好友的信息,比如男女比例,地域分配,等等

代码语言:javascript
复制
bot.friends().stats_text()

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

代码语言:javascript
复制
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()

7.接入图灵机器人 让机器人来回复好友信息

代码语言:javascript
复制
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.设置最大保存信息条数,并且可以搜索

代码语言:javascript
复制
bot = Bot()
# 设置历史消息的最大保存数量为 10000 条
bot.messages.max_history = 10000

# 搜索所有自己发送的,文本中包含 'wxpy' 的消息
bot.messages.search('wxpy', sender=bot.self)

9.用微信监控你的程序

  1.获得专用logger

代码语言:javascript
复制
wxpy.get_wechat_logger(receiver=None, name=None, level=30)
获得一个可向指定微信聊天对象发送日志的 Logger

参数:
receiver –
当为 None, True 或字符串时,将以该值作为 cache_path 参数启动一个新的机器人,并发送到该机器人的”文件传输助手”
当为 机器人 时,将发送到该机器人的”文件传输助手”
当为 聊天对象 时,将发送到该聊天对象
name – Logger 名称
level – Logger 等级,默认为 logging.WARNING
返回:
Logger

2.指定一个群为消息接受者

代码语言:javascript
复制
from wxpy import *

# 初始化机器人
bot = Bot()
# 找到需要接收日志的群 -- `ensure_one()` 用于确保找到的结果是唯一的,避免发错地方
group_receiver = ensure_one(bot.groups().search('XX业务-告警通知'))

# 指定这个群为接收者
logger = get_wechat_logger(group_receiver)

logger.error('打扰大家了,但这是一条重要的错误日志...')   #默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG)

3.将异常消息发送到指定对象那里

代码语言:javascript
复制
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)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫数据分析挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python玩转微信
    • 1.生成微信对象
      • 2.分别找到微信对象的好友,聊天对象,朋友,群组,公众号
        • 3. 查找某个好友
          • 4.向好友发送消息
            • 5.统计微信好友的信息,比如男女比例,地域分配,等等
              • 6.监听群里面某个人的消息
                • 7.接入图灵机器人 让机器人来回复好友信息
                  • 8.设置最大保存信息条数,并且可以搜索
                    • 9.用微信监控你的程序
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档