基于itchat,使用个人微信账户,利用爬虫信息从网络上搜集实时疫情数据,用户通过微信消息进行订阅,若出现相关信息,则主动对用户进行推送。可根据用户指令监控群聊,对群内出现的新闻、分享、图片自动进行辟谣。
图1 登陆成功之后的提醒
- 1.定时从腾讯新闻获取全国疫情数据(地址:https://news.qq.com/zt2020/page/feiyan.htm)
- 2.按城市/省份对数据进行存储并对比数据是否更新
- 3.推送更新的数据到微信机器人
- 4.根据用户设定的地区推送实时数据
- 1.接收用户订阅,包括省份/城市/关键词
- 2.接收更新的数据并转发给订阅的用户
- 3.取消订阅
针对指定的微信群(主要是针对家族群这种年龄跨度较大的群),检测聊天记录中的新闻(长段文字)、分享(标题)、图片,将该信息拿到腾讯辟谣平台上进行搜索,若为谣言或存疑,则返回辟谣链接。
腾讯辟谣平台,URL:https://news.qq.com/zt2020/page/feiyan.htm#rumor
- 1.订阅指定微信群
- 2.检测聊天记录中的新闻(长段文字)、分享(标题)、图片
- 3.对长文提取文本摘要(开源工具:SnowNLP)
- 4.识别图片的文字并提取摘要(开源工具:tesseract)
- 5.在腾讯辟谣平台上进行搜索并返回结果
- 数据库:Redis
- 部署:Docker/Docker-compose
因为项目存在大量依赖,所以强烈建议您使用docker部署。
- 1.安装必要的依赖:
Linux:
sudo apt-get update && sudo apt-get install -y vim python-pip curl git
MacOS:
brew install -y vim python-pip curl git
- 2.安装 Docker
国内用户使用脚本一键安装: sudo curl -sSL https://get.daocloud.io/docker | sh
国外用户使用脚本一键安装: sudo curl -sSL get.docker.com | sh
详细步骤参照: https://docs.docker.com/install/
- 3.执行以下指令
# 安装docker-compose
pip install docker-compose
# 下载
git clone https://github.com/wuhan-support/robot-personal.git && cd robot-personal
# 编译并启动服务
docker-compose up -d
# 查看微信二维码,使用手机微信扫码登陆(本质上是登陆网页版微信,所以手机微信必须同时登陆)
docker logs ncovwerobot_ncov_robot_1
-
1.在官网下载Docker Desktop:https://docs.docker.com/install/
若未安装git,可直接在github下载ZIP
图2 github直接下载zip
- 3.打开Powershell(cmd也行,不建议),输入如下指令:
pip install docker-compose
# 已下载zip的则跳过这一步
git clone https://github.com/wuhan-support/robot-personal.git && cd robot-personal
docker-compose up -d
# 查看微信二维码,使用手机微信扫码登陆(本质上是登陆网页版微信,所以手机微信必须同时登陆)
docker logs ncovwerobot_ncov_robot_1
二维码会打印在控制台上,扫码登陆成功后,文件传输助手会收到登陆成功的消息(如图2)。
向文件传入助手发送Help/帮助可以获得帮助信息(如图3-左)
登陆之后就可以接收好友的订阅,当好友发送订阅+地区名时,比如订阅湖北,会返回订阅成功会失败的消息,并推送当前该地区疫情信息
图3: (左)发送帮助/Help可获取帮助信息; (中)订阅地区信息成功和失败; (右)自动推送数据
好友可选择取消订阅,其中“取消全部”会取消所有订阅,部分运行情况如图。
图4: (左)同时订阅多个地区的信息; (中)取消订阅信息; (右)自动推送数据效果图
对文件传输助手发送“辟谣+群名”,比如“辟谣家族群”,就可以开始对家族群的谣言检测。为了保证能正确定位到群聊,请避免群名称重复,并将群聊保存到通讯录。
图5: (左)对分享的新闻的谣言检测; (中) 对图片新闻中的谣言检测; (右)对长段文字的谣言检测
你可以发送CX查询已经启用了谣言检测的群聊
图5:开启辟谣和停止辟谣
1.本项目本质上是模拟网页版微信的操作,所以使用前请确保您的账号能登陆网页版微信。
2.给同一人发送的类似的信息过多时,新发送的信息会无法送达,必须要该用户主动响应一下才行。这是微信的限制,很难解决。
3.本项目频繁使用之后可能会造成您无法无法登陆网页版微信。