Python最新操作微信解决方案(附破解文件和代码)
本文我将给大家讲解微信机器人的制作,首先要跟大家说的就是:机器人不管是 QQ 机器人还是微信机器人,相对而言是比较灰色地带,本文中提供的几种方式,经过本人亲自测试,是很好用的!如果有需要,赶紧看看,这种东西不知道哪天就会没了,你懂得!(文末有破解文件和代码)
目录
- 微信机器人基础知识
- 前期配置
- 微信机器人实现代码
- Itchat 实现微信机器人(拉黑检测)
1. 微信机器人基础知识
1.1 微信机器人实现方式
目前来说微信机器人有以下几种实现方式:
- **Web 网页端:**2017年后不再支持新号登陆,仅支持老号,且掉线严重,容易被封号;
- Xposed: 在 2019年6月份,微信官方在行业重点打击 Xposed;
- PC Hook: 代码注入型破解,封号情况也多,比较偏小的团队使用;
- 模拟机: 延迟高、消息实时到达率低、模拟认为操作效率慢;
- Ipad 协议: 安全性较好,功能满足,行业占有率高,但具有研发能力的研发人员偏少;
- Mac 协议: 安全性相比 Ipad 协议更好,功能性相比 Ipad 协议少些,行业内具有研发能力更少,安全性、稳定性比较优秀,不会出现追封、批量封的情况;
- 混合通道: 基于 Mac 与 Ipad 协议,非 grpc,mmtls 破解,功能合适,微信第三方最稳定通道,不会出现技术封号问题;
第一种: 是使用 Web 网页端,你要理解我们是如何实现微信机器人的,其实我们就相当于去使用程序的方式去模拟我们人的操作,所以说:只要你有能够发微信的渠道,那我们就可以使用编程方式去操控,所以最简单最容易想到的就是 Web 网页端的操作。在 17年之前,我们是可以登陆网页端的,可以去操作的。但是,出现了 Mac、Windows 客户端之后,就逐渐的被淘汰了。你们大部分去查的就都是网页端或者基于网页端,这个方法我会给大家讲解。但有些小伙伴的微信实际上是用不了这个方法的。
第二种: 其实就是 Xposed ,这个其实我们现在主流的两大手机系统:IOS、Android,安卓我们知道是个开源的框架,那我们开发者是可以进行调整或者植入一些所需要的操作。那 Xposed 你简单的理解:从整个系统层面,去做出一些改进,类似劫持(控制)微信消息的收发或者一些功能(改变定位之类的)。但从 在 2019年6月份,微信官方在行业重点打击 Xposed。因为像营销类、骗子等也会去用这样的一些技术,所以是导致官方非常重点的在打击。这样看来,这方法貌似也不是那么稳妥的方法。
第三种: 利用的是电脑上的微信客户端,将代码注入客户端里面,我们去截获收发消息,这也是我们今天主要用到的方式,这其实就是不要太过分(骚人他人之类的,个人使用微信官方一般不会去搞你的)
第四种: 如果你做过手机开发的话,应该会知道,在模拟机上面让我做软件的这种操控。但延迟高、消息实时到达率低、模拟认为操作效率慢。
第五种: 另外我们是知道,在 Ipad 上面也是有微信客户端的,也就是如果可以破解掉微信客户端里面的协议,这也是一种方式。安全性较好,功能满足,行业占有率高,但具有研发能力的研发人员偏少。(使用 Ipad 原本就比较少,有开发能力的就更少了)
第六种: 安全性相比 Ipad 协议更好,功能性相比 Ipad 协议少些,行业内具有研发能力更少,安全性、稳定性比较优秀,不会出现追封、批量封的情况。
第七种: 还有一种就是把 Mac 与 Ipad 结合,基于 Mac 与 Ipad 协议,非 grpc,mmtls 破解,功能合适,微信第三方最稳定通道,不会出现技术封号问题;
1.2 本文主要会讲两种
- 基于 PC Hook
- 基于 Web 网页端
2. 前期配置
有同学可能会问,我要不要了解软件开发之类的?其实不用,我主要是站在前人的基础之上操作的。
2.1 那一定要注意的两件事情是:
第一件:
- PC Hook 得在 Windows 系统上操作
- 使用 Mac 的同学可以装 VirtualBox 虚拟机
第二件:
我们一般装 Python 的时候,大部分装的是 64位的 Python。但是 Windows 的微信客户端是 32 位程序,我们需要 32位的 Python 完成后面的操作,注意:也要勾选 Add to path。所以,我们需要安装一个 Python 32 位的。
2.2 修改 32位 Python 名称方便区分
一般来说,你安装了 Python 32位而你电脑本身又有 Python 64位,就已经有了两个 Python,所以我们需要做一个区分。
首先找到 Python 的安装位置,一般在:C:\Users\clela\AppData\Local\Programs\Python\
,clela
:用户名,按你自己的来。
当然,如果你不知道路径在哪,也可以在命令行输入:where Python
clela@黄家宝 C:\Users\clela\Desktop
$ where python
C:\Users\clela\AppData\Local\Programs\Python\Python36-32\python.exe
C:\Users\clela\AppData\Local\Programs\Python\Python37\python.exe
C:\Users\clela\AppData\Local\Microsoft\WindowsApps\python.exe
上面的 C:\Users\clela\AppData\Local\Programs\Python\Python36-32\python.exe
这个就是我安装的 python 3.6的 32位路径。具体看你自己安装的 Python 版本是多少,比如:是 Python 3.7 那路径就表示:C:\Users\clela\AppData\Local\Programs\Python\Python37-32\python.exe
其他的规律皆为如此。
那我们要做的一件事情是什么呢?
就是我平时用的最多的是 Python 64位,32位的 Python 只是为了做我们这个机器人项目,一般用不太到,所以我把 32位和 64位做一个区分。
怎么区分呢?
把 32 位 Python 的目录下面的 Python.exe 改名字,改为 python32.exe,以次用来和原来的 64为 Python 区分。(这个情况是你之前装的是 64位的话,要是 32位则不用)
- 这样你在控制台里面输入 Python 就是正常的 Python64位了,我如果输入 Python32 那这个时候就是 Python32 位。同学们可以自行验证一下。
- 重新打开命令行输入 python32 会打开 32位的 Python。
[MSC v.1900 32 bit (Intel)]
就是 32位,[MSC v.1916 64 bit (AMD64)]
就是 64位。
接下来启动我们微信机器人的 Python代码时都要输入:
python32 xxx.py
2.3 安装指定版本微信
不同版本的微信客户端注入时的地址有差异,2.6.7.40 版本的微信客户端可以正常使用。
3. 微信机器人实现代码
3.1 打开项目文件夹,确认必要的文件都在
本课程提供专有的资料包。文末提供获取方式!
确认 WechatBot.py
、WeChatSDK.all
、WeChatSDKCore.dll
都在,然后打开 test_bot.py
文件
我给同学们写了 WechatBot.py
文件,这些代码文件都要放在一起,而我们接下来要写的就是 test_bot.py
,WechatBot 是我简单写个一个文件,同学们把他引用就 ok 了。
3.2 微信机器人的实用方法
顺序:登录 >>> 指定接收消息的处理函数 >>> 初始化 >>> 主循环运行
# -*- coding: utf-8 -*-
# @Author: clela
# @Date: 2020-04-15 14:50:24
# @Last Modified by: clela
# @Last Modified time: 2020-04-15 23:33:27
# @公众号:pythonjs
from WechatBot import WechatBot
from datetime import datetimedef print_msg(pid, wxid, msg):print(pid, wxid, msg)bot = WechatBot()
bot.login()
bot.set_msg_handler(print_msg)
bot.initialize()
bot.send("filehelper", datetime.now())
bot.run()
我来说一下用法是:
- 登录
- 指定接收消息的处理函数(就是如果我们收到消息了,用哪个函数来处理)
- 初始化
- 主循环运行
首先把我写的机器人 WechatBot
导入:
from WechatBot import WechatBot
然后实例话:
bot = WechatBot()
接下来,第一步先 login
:
bot.login()
注意: 你运行之前,可以不用提前打开微信客户端。
登录: 因为,这行代码:
bot.login()
一运行就会自动的把微信客户端打开。然后打开之后,这时候你在登陆(扫码登陆都 ok 的)这些操作之后,他就会自动的往后运行。指定接收消息的处理函数: 然后,我自己写了一个函数:
print_msg
, 这个函数名你可以自己命名,也就是这个函数的作用就是,我微信如果收到消息,我就用这个函数来帮助我处理消息。
bot.set_msg_handler(print_msg)
收到了消息找哪个函数,这里我们找:print_msg
。
- 初始化: 然后,这些完成之后,我们做初始化的操作,代码如下:
bot.initialize()
初始化完成之后,你就可以发消息或者等着吧。
bot.send("filehelper", datetime.now())
一个名称:filehelper
(发给谁也就是 wxid) 然后,你要发的内容:datetime.now()
(你可以发其他内容)
注意: 上面自定义函数 print_msg
自定义的时候必要要留有三个参数给这个函数:pid, wxid, msg
- pid: 当前微信客户端运行的进程标识符;
- wxid: 就是你每一个微信号都有一个 wxid,就类似微信号是唯一的一样(但是,这个 wxid 不一定等同于你的微信账号,它有可能是,人为设定的,还有一些没有设定的,就像是 wxid_xxxx 之类的)这个就是你在收到消息,这个发消息的这个人或者群组的这个人或者群的 wxid。如果你要给这个人发消息,那就照这个 wxid 来发。不建议你调过 wxid 来发送消息,因为有些人没有设置微信账号。
- msg: 对方发来的消息具体是什么。
3.3 非文字消息的格式
公众号也是有 wxid 的。
公众号 WXID gh_332c335fdd4e
消息内容:XML 格式
3.4 XML 格式的读取
如果你要解析 XML 的话,需要安装 xmltodict
模块,pip install xmltodict
import xmltodictwith open("wechat_xml_msg_demo.xml", "r", encoding="utf-8") as f:xmlparse = xmltodict.parse(f.read())print(xmlparse['msg']['appmsg']['title'])print(xmlparse['msg']['appmsg']['des'])
大概就是这个样子,功能大概没有那么全,但是基本的接受和发送时 ok 的,这个已经足够我们去做一些事情了。
3.5 扩展
如果你要指定的收发消息,可以修改如下地方代码:
def print_msg(pid, wxid, msg):print(pid, wxid, msg)if msg == "aiyc":bot.send(wxid, "AI悦创测试代码")
运行效果如下:
4. Itchat 实现微信机器人(拉黑检测)
你好,我是悦创。
我们接下来来讲一下微信机器人的第二种方法:itchat 的使用,利用网页端的功能来实现编程控制的方式。
1. Itchat 使用
1.1 关于 ItChat 的使用
有的账号时不能使用网页微信进行登陆的,因此就无法使用 ItChat ,没有任何解决方法,此外使用 ItChat 发消息过于频繁会有很大的风险被限制登陆。一定注意酌情使用!
单纯的收发消息还是可以的,不要过度的使用。
1.2 安装 itchat
- 命令行/终端输入:
pip3 install itchat
- 文档:https://itchat.readthedocs.io/zh/latest/
1.3 最简单的例子
登陆微信然后给文件传输助手发一条消息
import itchatitchat.auto_login()itchat.send("Hello, filehelper", toUserName='filechelper')
# itchat.send("你要发的内容", toUserName='发过给谁')
1.4 消息回复
1.4.1 接收到文字消息时调用函数处理:
import itchat@itchat.msg_register(itchat.content.TEXT) # itchat 将根据接收到的消息类型,寻找对应的已经注册的方法 @itchat.msg_register(itchat.content.消息类型)
def text_reply(msg):return msg.text # 人家给我发什么消息我就回什么itchat.auto_login()
itchat.run()
消息类型有以下这些:
1.4.2 根据微信文本内容回复消息
import itchat@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):reply_text = ''if msg.text == "你好":reply_text = "不好":elif msg.text == "你是谁":reply_text = "你好,我是悦创。"else:reply_text = "哦"return reply_textitchat.auto_login()
itchat.run()
1.5 微信拉黑
一言不合上代码:
"""
project = 'Code', file_name = 'test', author = 'AI悦创'
time = '2020/4/18 14:26', product_name = PyCharm
# code is far away from bugs with the god animal protectingI love animals. They taste delicious.
"""
import itchat
import timeitchat.auto_login(hotReload=True) # 热加载print('检测结果可能会引起不适。')
print('检测结果请在手机上查看,此处仅显示检测信息。')
print('消息被拒收为被拉黑, 需要发送验证信息为被删。')
print('没有结果就是好结果。')
print('检测1000位好友需要34分钟, 以此类推。')
print('为了你的账号安全着想,这个速度刚好。')
print('在程序运行期间请让程序保持运行,网络保持连接。')
print('请不要从手机端手动退出。')
input('按ENTER键继续...')friends = itchat.get_friends(update=True)
lenght = len(friends)for i in range(1, lenght):# 所以迭代从除去自己后的第二位好友开始 range(1, lenght)。itchat.send("ॣ ॣ ॣ", toUserName=friends[i]['UserName'])print(f'检测到第{i}位好友: {str(friends[i]["NickName"]).center(20, " ")}')# 发送信息速度过快会被微信检测到异常行为。time.sleep(2)print('已检测完毕,请在手机端查看结果。')itchat.run()
关注公众号:pythonjs,然后发送关键字:微信机器人,即可领取本文中所有的资料和代码哦!
Python最新操作微信解决方案(附破解文件和代码)相关推荐
- matlab 2014a 安装教程(内附破解文件)
matlab 2014a 安装教程(内附破解文件) 这几天在准备数模,决心好好研究一下matlab,几经折腾,终于完成了安装与破解过程,下面是基本的步骤: 1:下载安装文件和破解文件 链接:h ...
- python自动操作微信_微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答...
原标题:微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答 本文为微信智能回复相关python项目,通过模拟网页端微信接口,实现跟好友之间自动的回复,并接入了图灵智能库,进行相应的内容 ...
- python列表操作:追加元素到列表的代码
将做工程过程中常用的内容做个收藏,如下的内容是关于python列表操作:追加元素到列表的内容. scores = ["1","2","3"] ...
- Python骚操作-微信远程控制电脑
Python+微信远程控制电脑 今天带给大家一个非常有意思的 python 程序,基于 itchat 实现微信控制电脑.你可以通过在微信发送命令,来拍摄当前电脑的使用者,然后图片会发送到你的微信上.甚 ...
- Python wxpy 操作微信 大全集
安装及导入 wxpy 安装 wxpy pip install wxpy 导入 wxpy import wxpy 登录微信 登录 bot = wxpy.Bot(cache_path=None, cons ...
- python自动操作微信_Python + Appium 自动化操作微信
环境 本文主要环境如下: Win10 JDK1.8 Appium Python3.7 android-sdk mumu 模拟器 JDK 下载地址:https://www.oracle.com/java ...
- Python图片操作-psd_tools:将psd文件转换成BMP
§01 转换psd文件 psd文件是Phtoshop图片格式,使用Python的库psd-tools将它进行转换.最近由逐飞科技提供的 第十六届智能汽车竞赛AI视觉组分赛区数据集 所有的图片输出的 ...
- python自动操作微信_Python+Appium 自动化操作微信入门看这一篇就够了
简介 Appium 是一个开源的自动化测试工具,支持 Android.iOS 平台上的原生应用,支持 Java.Python.PHP 等多种语言. Appium 封装了 Selenium,能够为用户提 ...
- python骚操作 微信远程控制电脑
前段时间在某微信公众号上看到的,觉得很棒,好东西就要分享出来嘛 import itchat import os import time import cv2sendMsg = u"{消息助手 ...
最新文章
- CCF-CSP 201712-2 游戏(C++实现)
- keras inceptionv1 到 inceptionv4演化
- Gentoo - X11 forwarding request failed on channel 0
- 干货分享:什么是Java设计工厂模式?
- 开源开放 | 开源立体化漏洞情报知识图谱(四维创智)
- RESTful最佳实践
- QT+ 状态栏+核心控件+浮动窗口
- 教新人如何压制AVI和RMVB(教程及下载)
- IMX6ULL Uboot 移植
- L7805CV-ASEMI三端稳压管L7805CV
- 烽火计划项目成果-目录索引
- LabVIEW编程LabVIEW控制Keithley 2400例程与相关资料
- 集合覆盖模型例题_集合实例(集合覆盖)
- 图像拼接(八):拼接多幅图像+Matlab实现+Stanford Open Course
- 毕业论文_页眉+页码
- win10 64位注册TeeChart8.ocx
- 计算机视觉实战----AlexNet网络及使用colab跑YoloV5代码
- Python自然语言处理-自然语言工具包(NLTK)
- h5怎么获取微信用户openId,h5如何获取微信用户openId
- 文献笔记:RhythmNet: End-to-end Heart Rate Estimation from Face via Spatial-temporal Representation