日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

微信 python 2020_2020年最新的Python操控微信教程

發布時間:2023/12/1 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信 python 2020_2020年最新的Python操控微信教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

自從微信禁止網頁版登陸之后,itchat 庫實現的功能也就都不能用了,那現在 Python 還能操作微信嗎?答案是還可以。

目前有一個項目 WechatPCAPI 可以對微信進行操作,簡單來說它是直接操作 PC 版微信客戶端的,當然它有一定不足之處就是:PC 版微信客戶端和 Python 都需要使用指定版本的,本文我們使用的 Python 版本為 3.7.6 ,微信客戶端使用版本為 2.6.8.52 ,WechatPCAPI 的 GitHub 地址為: https://github.com/Mocha-L/WechatPCAPI 。

獲取好友列表

WechatPCAPI 提供了方法 get_friends() ,該方法返回信息包括:好友、群和公眾號的列表信息,信息內容主要包括:微信號、昵稱和自己設置的備注。

我們使用獲取的昵稱做個簡單的詞云展示,代碼實現如下所示:

logging.basicConfig(level=logging.INFO)

def on_message(message):

pass

def get_friends():

# 初始化微信實例

wx_inst = WechatPCAPI(on_message=on_message, log=logging)

# 啟動微信

wx_inst.start_wechat(block=True)

# 等待登陸成功,此時需要人為掃碼登錄微信

while not wx_inst.get_myself():

time.sleep(5)

print('登陸成功')

nicknames = []

# 排除的詞

remove = ['還是', '不會', '一些', '所以', '果然',

'起來', '東西', '為什么', '真的', '這么',

'但是', '怎么', '還是', '時候', '一個',

'什么', '自己', '一切', '樣子', '一樣',

'沒有', '不是', '一種', '這個', '為了'

]

for key, value in wx_inst.get_friends().items():

if key in ['fmessage', 'floatbottle', 'filehelper'] or 'chatroom' in key:

continue

nicknames.append(value['wx_nickname'])

words = []

for text in nicknames:

if not text:

continue

for t in jieba.cut(text):

if t in remove:

continue

words.append(t)

global word_cloud

# 用逗號隔開詞語

word_cloud = ','.join(words)

def nk_cloud():

# 打開詞云背景圖

cloud_mask = np.array(Image.open('bg.png'))

# 定義詞云的一些屬性

wc = WordCloud(

# 背景圖分割顏色為白色

background_color='white',

# 背景圖樣

mask=cloud_mask,

# 顯示最大詞數

max_words=300,

# 顯示中文

font_path='./fonts/simkai.ttf',

# 最大尺寸

max_font_size=70

)

global word_cloud

# 詞云函數

x = wc.generate(word_cloud)

# 生成詞云圖片

image = x.to_image()

# 展示詞云圖片

image.show()

# 保存詞云圖片

wc.to_file('nk.png')

看一下效果:

?

消息防撤回

我們在使用微信和好友聊天時,對方有時會有撤回消息的情況,正常情況下,我們是不知道好友撤回的消息是什么的,通過 WechatPCAPI 就可以實現消息防撤回的功能。

我們知道通常撤回的消息是點擊撤回操作前一步發送的內容,當然也可能撤回的是前兩步、三步 ... 的消息,這里我們只對撤回前一步的消息做處理,基本思路是:我們將撤回前一步發送的消息存一下,當對方點擊撤回操作時,我們再將前一步的消息再次返回給自己。

下面看一下實現代碼:

logging.basicConfig(level=logging.INFO)

queue_recved_event = Queue()

def on_message(msg):

queue_recved_event.put(msg)

def login():

pre_msg = ''

# 初始化微信實例

wx_inst = WechatPCAPI(on_message=on_message, log=logging)

# 啟動微信

wx_inst.start_wechat(block=True)

# 等待登陸成功,此時需要人為掃碼登錄微信

while not wx_inst.get_myself():

time.sleep(5)

print('登陸成功')

while True:

msg = queue_recved_event.get()

data = msg.get('data')

sendinfo = data.get('sendinfo')

data_type = str(data.get('data_type'))

msgcontent = str(data.get('msgcontent'))

is_recv = data.get('is_recv')

print(msg)

if data_type == '1' and 'revokemsg' not in msgcontent:

pre_msg = msgcontent

if sendinfo is not None and 'revokemsg' in msgcontent:

user = str(sendinfo.get('wx_id_search'))

recall = '撤回的消息:' + pre_msg

wx_inst.send_text(to_user=user, msg=recall)

看一下操作效果:

?

總結

以上是生活随笔為你收集整理的微信 python 2020_2020年最新的Python操控微信教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。