用python玩微信


用Python玩轉微信

 

Python玩轉微信

大家每天都在用微信,有沒有想過用python來控制我們的微信,不多說,直接上干貨!  這個是在 itchat上做的封裝  http://itchat.readthedocs.io/zh/latest/

安裝模塊

pip3  install  wxpy    


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

1.生成微信對象

bot = Bot()   #初始化一個對象,就相當於拿到了這個人的微信,后續的一些操作都要用它來完成

 

2.分別找到微信對象的好友,聊天對象,朋友,群組,公眾號

復制代碼
friends = bot.friends()  # 獲取朋友            chats = bot.chats()      # 獲取聊天對象 
groups = bot.groups()    #獲取群聊 
maps = bot.maps() #獲取公眾號

# 拿到的都是列表 如果要取到對象加上角標[0]
但是這樣很麻煩
推薦方法,這樣寫
ensure_one(bot.groups().search('群名'))
 
復制代碼

3.  查找某個好友

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

bot.friends().stats_text()

 

 6.監聽群里面某個人的消息

復制代碼
 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 參數 – 設定歡迎內容,將在進入命令行后展示。
復制代碼

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.指定一個群為消息接受者

  

復制代碼
 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.將異常消息發送到指定對象那里

復制代碼
from wxpy import get_wechat_logger

# 獲得一個專用 Logger
# 當不設置 `receiver` 時,會將日志發送到隨后掃碼登陸的微信的"文件傳輸助手"
logger = get_wechat_logger()

#指定接受對象
group_reciver = ensure_one(bot.groups().search('群名稱'))

# 發送警告
logger.warning('這是一條 WARNING 等級的日志,你收到了嗎?')

# 接收捕獲的異常
try:
    1 / 0
except Exception as e 
    logger.exception(e)
復制代碼

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM