文章目录
一、先睹为快的效果演示
当你的微信收到消息时,你的Python脚本会像贴心小秘书一样自动响应:
- 收到"天气"自动推送当地天气预报
- 收到"新闻"返回今日热点资讯
- 收到文件自动保存到指定目录
- 群消息智能@回复
(悄悄告诉你,我的脚本每天能处理3000+条消息!)
二、准备工作别马虎(必看!)
- 安装核心武器库:
pip install itchat==1.3.10 # 最新版可能有坑,这个版本最稳!
-
注册图灵机器人(免费版够用):
打开图灵官网,30秒搞定API key获取 -
准备两个微信号:
一个用于开发测试,一个作为主力账号(你懂的,防翻车!)
三、代码实操步步惊心
3.1 基础版自动回复
import itchat
# 登录微信(扫码那种)
itchat.auto_login(hotReload=True) # 记住登录状态
@itchat.msg_register([itchat.content.TEXT])
def simple_reply(msg):
default_response = "【自动回复】主人正在搬砖,稍后回复您~"
return default_response
itchat.run() # 保持在线
运行这段代码,你的微信就变身24小时在线的自动回复机器啦!
3.2 智能对话升级版
import requests
import itchat
TULING_API = "你的API密钥"
API_URL = "http://openapi.tuling123.com/openapi/api/v2"
def get_tuling_response(text):
data = {
"perception": {"inputText": {"text": text}},
"userInfo": {"apiKey": TULING_API, "userId": "123"}
}
resp = requests.post(API_URL, json=data).json()
return resp['results'][0]['values']['text']
@itchat.msg_register([itchat.content.TEXT])
def smart_reply(msg):
if msg['FromUserName'] == my_user_id: # 不回复自己
return
return get_tuling_response(msg['Text'])
if __name__ == '__main__':
my_user_id = itchat.auto_login(hotReload=True)['User']['UserName']
itchat.run()
现在你的机器人能聊天气、讲笑话、查百科,堪比真人对话!
四、高阶玩法大揭秘
4.1 文件自动管家
@itchat.msg_register([itchat.content.FILE])
def file_manager(msg):
file_path = f"./downloads/{msg.fileName}"
msg.download(file_path)
itchat.send("文件已保存到:{}".format(file_path), msg['FromUserName'])
4.2 群聊智能监控
@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)
def group_reply(msg):
if msg.isAt: # 被@时才回复
group_id = msg['FromUserName']
reply_text = "@{} 您呼叫的机器人已上线!".format(msg['ActualNickName'])
itchat.send(reply_text, group_id)
4.3 防撤回神器
import time
revoked_messages = {}
@itchat.msg_register(itchat.content.NOTE)
def track_revoke(msg):
if '撤回' in msg['Text']:
old_msg_id = re.search('<msgid>(.*?)</msgid>', msg['Content']).group(1)
revoked_msg = revoked_messages.get(old_msg_id, None)
if revoked_msg:
alert = "抓到撤回啦!{}撤回了:{}".format(revoked_msg['FromUserName'], revoked_msg['Text'])
itchat.send(alert, toUserName='filehelper') # 发送到文件传输助手
五、防封号生存指南(血泪经验!)
- 频率控制:回复间隔不要小于3秒,群消息每天不超过200条
- 行为伪装:随机加入5-10秒的延迟,模仿真人操作
- 设备模拟:在代码中添加随机鼠标移动事件(用pyautogui)
- 定期休息:每运行2小时自动退出15分钟
- 备用方案:准备3个以上微信号轮换使用
六、常见问题急救箱
Q1: 扫码登录失败?
尝试删除itchat的登录缓存文件:‘itchat.pkl’
Q2: 发送图片崩溃?
使用file_helper先上传:
itchat.send_image("test.jpg", toUserName="filehelper")
Q3: 如何多开?
用subprocess启动多个Python进程,每个进程对应不同微信号
七、还能这么玩!(创意扩展)
- 自动通过好友验证并发送欢迎语
- 定时群发节日祝福
- 消息内容关键词监控报警
- 聊天记录自动云备份
- 结合OpenAI打造超级智能助手
(实测可用但低调使用,你懂的!)
最后提醒
本文代码仅供学习交流,请遵守微信使用规范。频繁滥用可能导致账号限制,建议控制使用频率。如果要做商业化应用,务必申请微信官方接口!
赶紧动手试试,让你的微信变得聪明起来吧!遇到问题欢迎评论区交流~(代码亲测有效,2023年8月最新可用版本)