前瞻

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

注意事项

  1. 微信需要实名认证,即:钱包实名制认证
  2. 如果出现:Log in time out, reloading QR code. 二维码一直刷新

解决办法:

itchat/components/login.py login()函数 while not isLoggedIn 循环前增加一个time.sleep(15)

  1. 登陆可能失败多登陆几次
  2. 可能出现微信被官方封禁请使用小号测试

标题:微信群消息机器人itchat
作者:zybox
地址:http://zybox.com.cn/articles/2024/10/11/1728616832052.html