聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

全球快看:wxpy庫的常用實用方法 微信好友可視化分析方法

來源:CSDN 時間:2023-04-27 10:27:29

當微信一步步走進人們的生活,大家慢慢離不開它,好了不寫作文了! 今天是對wxpy庫常用方法的概述,包括自動回復,自動接受好友請求,轉發,監聽,防撤回等功能的實現,并對微信好友進行可視化分析!


(資料圖)

先用實現數據可視化部分來開開胃吧 下圖是對于各城市好友的分布人數情況

首先我們需要獲取微信好友的分布情況

bot = Bot(cache_path=True,login_callback=None)#設置下次自動登錄,方便測試friends = bot.friends(update=True)#獲取所有微信好友friend_data = []for friend in friends1:    friend_data1.append(friend.city)#將微信好友的所在城市加入列表for i in friend_data:    if i == "":        friend_data.remove(i)for j in friend_data:    if j == "Others":        friend_data.remove(j)#和下面的del都是為了移除不在中國范圍內或是未定義的地名便于使用繪制地圖print(friend_data)a = {}for i in friend_data:    a[i] = friend_data.count(i)print(a)del a[""]del a["London"]del a["Sydney"]del a["Adelaide"]# 把字典進行有序拆分為2個列表attrs = []values = []for value, attr in a.items():    values.append(attr)    attrs.append(value)#獲取好友所在每個城市及其人數

下圖是做的使用pyecharts 的geo模塊制作的地圖,中國好友分布地圖以及浙江好友分布地圖同樣都是可交互圖表

friends1 = bot.friends(update=False).search(province = "浙江")#獲取在浙江的好友

操作方法同上,獲取浙江好友所在的城市,并將人數與城市分別放在列表中

這是中國分布地圖 接下來進入主題是對wxpy庫用法的操作

p = bot.friends().stats_text()#獲取自身好友分布的簡要概況print(p)print("*"*10)l = bot.friends().search(sex = FEMALE)#獲取好友中性別為女的朋友print(l)print("*"*10)l1 = bot.friends().search(province = "浙江")#獲取好友中省份為浙江的好友print(l1)print("*"*10)l2 = bot.friends().search(city = "大連")#好友中城市為大連的好友print(l2)print("*"*10)my_friend = bot.friends().search(u"萌!")[0]#查找特定名稱的好友print(my_friend)print("*"*10)my_group = bot.groups(update=True).search(u"軟件三班")[0]#查找群并獲取群內好友print(my_group)for i in my_group:    print(i)

結果如圖 接下來是萬眾期待的聊天環節,試想你和女神在一個群里,而其他人太吵只想看她的信息怎么辦,那就要在群聊中監聽她,如果有人在群里@你或者所有人,但是消息卻被頂上去了,這時候也需要轉發

@bot.register(chats=Group)#設置聊天對象為群def for_msg(msg):    if msg.is_at:        msg.forward(bot.file_helper, prefix="陳彥祖發言")#這里是測試失誤,來不及改,當有人@的時候就會轉發到文件助手,這里前綴是陳彥祖發言,但是應該寫成xxx@我,怎么改自己想要下課了趕時間!    if msg.member == my_friend:        msg.forward(bot.file_helper, prefix="萌!發言")#當群聊中的女神發言,就會將她的消息也轉到文件助手

然后是防撤回功能

@bot.register(msg_types=NOTE)def system_msg(msg):    raw = msg.raw#獲取聊天信息    print(raw)    print(raw["Status"])    if raw["Status"] == 4:#狀態4代表撤回        revoke_msg_id = re.search("(.*?)", msg.raw["Content"]).group(1)        print(revoke_msg_id)        print(msg.bot.messages[::-1])        for old_msg_item in msg.bot.messages[::-1]:#獲取最后一條信息并像文件助手轉發(兩者有不同id)            print(old_msg_item)            print(old_msg_item.id)            if revoke_msg_id == str(old_msg_item.id):                bot.file_helper.send("撤回了一條消息來自:{}".format(old_msg_item))

然后是自動添加好友請求,并隨機打招呼

import randomplay1=["你好在的,加我直接轉賬就好了","你剛加的這個人比坤坤還努力","請問你是看中了我的美貌才加的我嗎?","我是祖國的花朵,而你是祖國的荒草"]@bot.register(msg_types=FRIENDS)def auto_accept_friends(msg):    new_friend = bot.accept_friend(msg.card)    new_friend.send(random.choice(play1))

接著是對消息的回復功能,我直接添加了監控電腦的例子

@bot.register(chats=Friend)def friend_msg(msg):    if msg.type == TEXT:#好友發送文本消息的情況執行以下        if msg.text == "監控":#如果文字為監控            cap = cv2.VideoCapture(0)#打開攝像頭            ret, frame = cap.read() # show a frame            # cv2.imshow("qcapture", frame)            cv2.imwrite("photo.jpg",frame)#保存拍攝圖片            print(msg.sender)#發送者            msg.sender.send_image("photo.jpg")#像發送者發送圖片    if msg.type == PICTURE:#如果發送消息為圖片格式        msg.get_file(save_path="yanzhi.jpg")#接受圖片        yanzhi(msg.sender,"yanzhi.jpg")#這里是顏值檢測功能,使用的是百度的api

效果如下 測試效果還是挺準的,有沒有美顏差別也不大,大公司的api就是厲害 另外別忘了要加一個bot.join()可以一直調用者程序, 真的下課了沒時間了,還有好多自己去百度微信文檔!?。。。?! 謝謝大家再見! 貼個之前基于圖靈機器人自動回復聊天的代碼吧

from wxpy import *import re#64abb42bcdbd4ac4ba9c43fd014d177a#3d7a22d0436f46e8a6676ae31e0e1cf6bot = Bot(cache_path=False)tuling_api_key = "64abb42bcdbd4ac4ba9c43fd014d177a"tuling = Tuling(api_key=tuling_api_key)def auto_reply(msg):    return tuling.do_reply(msg)

現在圖靈機器人要實名認證才能免費試用,我嫌麻煩就一直沒認證,但是你們可以嘗試 下課了再見!?。?/p>

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线