前瞻
2017年后,新注册的微信基本登录不了网页版,itchat-uos版本利用统信UOS的网页版微信,可以让你绕过网页微信的登录限制。
你只需要执行下条命令便能复活Itchat
pip install itchat-uos==1.5.0.dev0
目前使用 1.5.0.dev0
大多数使用者可能出现微信被官方封禁提醒,从已知收集的封禁情况,暂未有可解决方案。
猜测可能与近期ChatGPT结合本仓库实现个性化机器人导致相关封禁,请合理,谨慎使用本仓库。
itchat-uos简介
itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。
使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。
当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如这些。
该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。
如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。
安装
如你已经具备python3环境,可以跳过以下步骤:
安装python3及配置pip源
#centos7.9.2009
#备份文件
mkdir -p /etc/bak
mv /etc/yum.repos.d/* /etc/bak
#修改yum源,阿里yum源
cat <<EOF > /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
EOF
#清空yum缓存
yum clean all
#安装依赖包
yum groupinstall -y 'Development Tools'
yum install -y zlib-devel openssl-devel bzip2-devel libffi-devel gcc make libxml2-devel libxslt-devel python-virtualenv vim
#下载python包
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
#解压安装python
tar -zxvf Python-3.7.9.tgz && cd Python-3.7.9 && ./configure --prefix=/usr/local/python3 && make && make install
#配置环境
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
virtualenv /data01/itchat_env --python=python3
echo 'PATH="/data01/itchat_env/bin:$PATH"' >> /etc/profile
#创建pip源
mkdir -p /root/.pip
cat <<EOF > /root/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
EOF
source /data01/itchat_env/bin/activate
安装python依赖库
#安装python库
pip3 install requests
pip3 install itchat-uos==1.5.0.dev0
群消息机器人接入函数
#!/usr/local/python3
# coding=utf-8
import itchat
from itchat.content import *
import time
import requests
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING, PICTURE, RECORDING, ATTACHMENT, VIDEO], isGroupChat=True)
def group_reply_text(msg):
global flag
global ChatRoom
global tuling
global daily_count
print("group_reply_text enter")
message = msg['Text']
print(message)
print(msg['FromUserName'])
flag = 0
if msg['isAt']:
#at_user = ''.join(message.split()[0])
message = ''.join(message.split()[1:])
print(message)
if u'干什么' in message:
replay = u'在忙呢'
elif u'生气' in message:
replay = u'生气对身体不好'
elif u'?' in message:
replay = u'哈哈,我也不知道'
elif u'不理你' in message:
replay = u'乖,忙完给你买糖吃'
elif u'涛' in message:
replay = u'他是我主人'
elif u'厉害' in message:
replay = u'不不不,辣鸡一个'
elif u'你好' in message:
replay = u'你好哇'
elif u'好吧' in message:
replay = u'再见'
elif u'博客' in message:
replay = u'您是想看群主博客吗,可参考链接:\n https://blog.csdn.net/weixin_42135087/article/details/107037145'
elif u'视频' in message:
replay = u'您是想看群主哔哩哔哩吗,可参考链接:\n https://space.bilibili.com/482877928'
elif u'你是谁' in message:
replay = u'我是我们群的机器人啊'
elif u'名字' in message:
replay = u'你不会点开我的头像查看吗'
elif u'叫什么' in message:
replay = u'我叫HH_rebot'
elif u'岁' in message:
replay = u'年龄是我的隐私,不要调戏人家好不'
else:
replay = u'抱歉,我不清楚您的问题该如何回答'
itchat.send(replay, msg['FromUserName'])
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
time.sleep(1)
return msg.text
itchat.auto_login(enableCmdQR=2)
itchat.run()
这里可以接一些LLM模型api,让微信机器人自动回复,如果大家感兴趣的话,后续可以分享接入方式。
运行python扫码登陆
python3 xxxx
注意事项
- 微信需要实名认证,即:钱包实名制认证
- 如果出现:Log in time out, reloading QR code. 二维码一直刷新
解决办法:
itchat/components/login.py login()函数 while not isLoggedIn 循环前增加一个time.sleep(15)
- 登陆可能失败多登陆几次
- 可能出现微信被官方封禁请使用小号测试