分享好友 行情首页 行情分类 切换频道
python hook pc微信_一起来用python玩一波微信呀 | 防撤回, 好友分析, 聊天机器人~...
2024-12-26 16:09  浏览:94

导语

众所周知,前段时间微信彻底关闭了网页版微信登录入口。于是一大波基于itchat和wxpy的割韭菜项目都失效了。算了,说割韭菜太得罪人了,还是说烂大街的项目吧,然后那些文章标题基本上都是"女朋友xxx了,神级程序猿写了个xxx"之类的。感觉还挺逗的。

跑题了,调侃归调侃,其实这些项目还是挺有意思的,而且也可以激发一下新手的学习热情。所以我决定分享一下最近在网上看到的一个名为WechatPCAPI的半开源包,它的原理是直接hook了微信PC端,从而得到了一些微信PC端的接口,所以不需要依赖于微信网页版。

不过因为这个包是半开源的,所以缺点很明显,它只支持固定版本的微信和固定版本的python。不过这并不妨碍我们拿来玩一玩。今天的内容包括利用这个半开源包制作:微信消息防撤回小程序

微信好友分析小程序

微信聊天机器人小程序。

废话不多说,让我们愉快地开始吧~

开发工具

Python版本:3.7.x(注意,必须是3.7版本的)

相关模块

WechatPCAPI模块

jieba模块

wordcloud模块

requests模块

pycryptodomex模块

以及一些python自带的模块。

微信PC端版本

2.6.8.52

环境搭建

安装python3.7并添加到环境变量,pip安装需要的相关模块即可。 同时,电脑上必须安装2.6.8.52版本的微信。

原理简介

0.微信登录

安装下图所示的微信版本

然后调用WechatPCAPI这个半开源包就可以实现微信的登录操作啦

import logging

from queue import Queue

from WechatPCAPI import WechatPCAPI

listen_queue = Queue()

def listen(msg):

listen_queue.put(msg)

logging.basicConfig(level=logging.INFO)

pc_api = WechatPCAPI(on_message=listen, log=logging)

pc_api.start_wechat(block=True)

登录过程和你平时登录微信PC版一样,所以你需要扫码或者点击那个登录确认按钮进行微信登录。

1.微信消息防撤回

原理很简单,就是不断调用

all_messages = {}

while True:

msg = listen_queue.get()

从而获得微信好友发给自己的所有信息,并用一个字典对象保存下来

data = msg.get('data', {})

nickname = data['msgfrominfo']['remark_name']

wx_id_search = data['msgfrominfo']['wx_id_search']

info = [int(time.time()), nickname, data['msgcontent']]

if wx_id_search in all_messages:

all_messages[wx_id_search].append(info)

else:

all_messages[wx_id_search] = [info]

当对方撤回消息时,就把对方发过的消息通过文件传输助手重新发一遍给自己,以实现微信消息防撤回的功能

if u'撤回了一条消息' in info[-1] and 'revokemsg' in info[-1]:

pc_api.send_text(to_user='filehelper', msg=all_messages[wx_id_search])

因为微信用户只能撤回三分钟以内的消息,所以我们写个函数清理一下微信好友三分钟之前发给自己的消息,换句话说,我们只保留最近三分钟的微信消息数据

'''缓存清理'''

def cleancache():

time_thresh = 180

time_now = int(time.time())

all_messages_new = {}

for key, value in all_messages.items():

value_new = []

for item in value:

if time_now - item[0] < time_thresh:

value_new.append(item)

all_messages_new[key] = value_new

del all_messages

all_messages = all_messages_new

大功告成,完整源代码详见相关文件antiwithdrawal.py。

2.微信聊天机器人

原理和前面的微信消息防撤回类似,主要是添加个图灵机器人

'''图灵机器人'''

def tuling(msg):

key = random.choice(['fb8fcc789ef4473bb96e790b45a07832', 'a65aa00b424047d88554b744eaf07597', '87490f6fe8f640d89b9f97c476a5dac4', '7b84344e82ba4409a9e99b1abf0386c2'])

api_url = 'http://www.tuling123.com/openapi/api?key=%s&info=%s' % (key, msg)

res = requests.get(api_url)

res.encoding = 'utf-8'

res_json = res.json()

return res_json['text']

然后回复对应的微信好友就行啦

wx_id = data['msgfrominfo']['wx_id']

reply_msg = tuling(data['msgcontent'])

pc_api.send_text(to_user=wx_id, msg=reply_msg)

大功告成,完整源代码详见相关文件chatbot.py。

3.微信好友分析

刚开始看文档的时候以为可以获得微信好友的详细数据的,结果测试的时候才发现只能获取微信好友的微信号和昵称这些基本数据。性别,所在地这些数据是无法获取的,真是尴尬。所以只能画个好友词云呗

nicknames = []

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

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

continue

nicknames.append(value['wx_nickname'])

stopwords = open('https://blog.csdn.net/weixin_39845461/article/details/stopwords.txt', 'r', encoding='utf-8').read().split(' ')[:-1]

words = statisticsWF(nicknames, stopwords=stopwords)

wc = WordCloud(font_path='simkai.ttf', background_color='white', max_words=2000, width=1920, height=1080, margin=5)

wc.generate_from_frequencies(words)

wc.to_file('微信好友昵称词云.png')

大功告成,完整源代码详见相关文件analysisfriends.py。

效果展示

录视频太麻烦了,随便截几个效果图吧。

0.微信登录

微信登录成功时终端打印的数据如下

1.微信消息防撤回

比如你们在聊天,对方撤回了一条消息

然后你可以查看一下文件传输助手

显然,你的好友欺骗了你。

2.微信聊天机器人

随便截个和机器人聊天的效果图吧(讲道理图灵机器人有点蠢T_T)

3.微信好友分析

    以上就是本篇文章【python hook pc微信_一起来用python玩一波微信呀 | 防撤回, 好友分析, 聊天机器人~...】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/6600.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
手机铃声青藏高原(手机铃声青藏高原免费下载)
  《手机铃声青藏高原》的音乐魅力  在当今社会,手机铃声已经成为我们生活中不可或缺的一部分。随着科技的进步和人们对美好
手机危害图片(手机危害图片大全)
  关于《手机危害图片》的文章  随着科技的飞速发展,智能手机已经普及到我们的日常生活中。然而,手机在带来便利的同时,也
手机软件格式(手机软件格式后缀)
  关于手机软件格式的文章  随着移动互联网的飞速发展,手机软件已成为我们日常生活中不可或缺的一部分。而手机软件格式,则
支付宝手机号码换了怎么办(支付宝手机号码换了怎么办 原来的号码不用了登不上去)
  《支付宝手机号码换了怎么办》  随着移动互联网的普及,支付宝已经成为我们日常生活中不可或缺的一部分。然而,有时候我们
魅族手机魅蓝3(魅族手机魅蓝Note5全新手机)
  魅族手机魅蓝3:功能与设计的完美结合  在当今的手机市场,魅族手机以其独特的设计和卓越的性能赢得了广大用户的喜爱。其
手机有条纹怎么办(手机出现条纹会有什么影响)
  关于手机有条纹怎么办的文章  一、现象描述  如今,智能手机已成为我们日常生活中不可或缺的伙伴。然而,有时候我们可能
日本中国手机(日本中国手机销量)
  日本与中国的手机:跨越国界的科技交融  随着科技的飞速发展,手机已经成为我们日常生活中不可或缺的一部分。在这一领域,
手机杀毒清理软件(手机杀毒清理软件排行榜)
  关于《手机杀毒清理软件》的文章  随着智能手机的普及,我们的生活越来越离不开手机。然而,随着手机使用的频繁,手机安全
手机无法连接到移动网络(手机无法连接到移动网络是什么原因)
  关于《手机无法连接到移动网络》的问题解析  随着智能手机的普及,移动网络已成为我们日常生活中不可或缺的一部分。然而,
手机写字软件(手机写字软件下载免费)
  关于《手机写字软件》的文章  随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。为了满足用户多元化
本企业新闻
推荐企业新闻
发表评论
0评