本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理
本品文章來自騰訊云 作者:孤獨的明月
Python玩轉微信
大家每天都在用微信,有沒有想過用python來控制我們的微信,不多說,直接上干貨! 這個是在 itchat上做的封裝
安裝模塊
pip3 install wxpy pip install wxpy -i "https://pypi.doubanio.com/simple/" #豆瓣源
1.生成微信物件
bot = Bot() #初始化一個物件,就相當于拿到了這個人的微信,后續的一些操作都要用它來完成 bot = Bot(cache_path=True) #快取登陸狀態
2.分別找到微信物件的好友,聊天物件,朋友,群組,公眾號
friends = bot.friends() # 獲取朋友 chats = bot.chats() # 獲取聊天物件 groups = bot.groups() #獲取群聊 maps = bot.maps() #獲取公眾號 # 拿到的都是串列 如果要取到物件加上角標[0] 但是這樣很麻煩 推薦方法,這樣寫 ensure_one(bot.groups().search('全堆疊開發脫產11期'))
3. 查找某個好友
friend = bot.friends().search('袁勇')[0]
4.向好友發送訊息
# 發送文本 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.統計微信好友的資訊,比如男女比例,地域分配,等等
bot.friends().stats_text()
6.監聽群里面某個人的訊息
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.接入圖靈機器人 讓機器人來回復好友資訊
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.設定最大保存資訊條數,并且可以搜索
bot = Bot() # 設定歷史訊息的最大保存數量為 10000 條 bot.messages.max_history = 10000 # 搜索所有自己發送的,文本中包含 'wxpy' 的訊息 bot.messages.search('wxpy', sender=bot.self)
9.用微信監控你的程式
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.指定一個群為訊息接受者
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.將例外訊息發送到指定物件那里
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238370.html
標籤:其他
上一篇:Google 開源的 Guava 工具庫,太強大了~
下一篇:nonlocal關鍵字
