不定时更新......
ZhihuNet 是配套 2025 CIKM 会议论文 IPNet: An Interaction Pattern-aware Neural Network for Temporal Link Prediction 研发的全栈项目,基于 SpringBoot 4.x 微服务架构构建,前端选用 Vue3,是集知乎数据爬虫、用户数据分析、时序链接预测、个性化推荐于一体的完整系统。
- 企业级工程规范:多模块分层设计、统一异常处理、参数校验、全链路日志归档、单元测试覆盖;
- 分布式微服务架构:基于 Dubbo + Nacos 实现服务解耦,模块职责清晰,支持横向扩展与独立部署;
- 知乎反爬适配:适配知乎接口加密规则(x-zse-93/x-zse-96 等参数),解决接口校验问题;
- 完整的权限体系:基于 JWT + Redis 实现分布式鉴权,AOP 切面拦截,支持多角色权限控制;
- 数据可视化:知乎用户数据多维度展示、行为时序分析、互动关系可视化(TODO)
- 后端主仓库:https://github.com/ACPasser/ZhihuNet
- 前端代码仓库:https://github.com/ACPasser/ZhihuNet-frontend
- IPNet 模型仓库:https://github.com/ACPasser/IPNet
| 环境 / 中间件 | 版本要求 | 说明 |
|---|---|---|
| JDK | 21+ | - |
| Maven | 3.8+ | - |
| MySQL | 8.0+ | - |
| Nacos | 2.x | - |
| Redis | 6.x+ | 缓存 Token、验证码、热点数据 |
| Node.js | 22.19.0+ | 前端环境 |
- 克隆仓库
git clone https://github.com/ACPasser/ZhihuNet.git
cd ZhihuNet- 初始化数据库
执行数据库初始化脚本:zhihu_database_init.sql
-
核心中间件
- Nacos 服务(默认地址:http://localhost:8848)
- Redis 服务(默认地址:localhost:6379)
-
修改配置文件(删除.template后缀 && 按照注释改写)
- ZhihuNet-console/src/main/resources/application.yml.template
- ZhihuNet-crawler/src/main/resources/application.yml.template
# 全量构建(跳过测试,推荐)
mvn clean install -U -DskipTests执行成功后,终端会输出:BUILD SUCCESS
- 启动 Nacos 服务
# 进入 Nacos 安装目录的 bin 文件夹
cd /usr/local/nacos/bin # 替换为你的 Nacos 实际路径
# Linux/Mac 启动(单机模式)
sh startup.sh -m standalone- 启动 Redis
# Linux/Mac 启动(单机模式)
redis-server- 启动 console 服务和 crawler 服务:IDEA / jar包
# jar包启动
cd ZhihuNet-console/target
java -jar ZhihuNet-console-0.0.1-SNAPSHOT.jar-
测试账号:本地部署完成后,可通过注册接口自行创建账号。
-
后端接口地址:http://localhost:8080
-
SpringDoc 接口文档:http://localhost:8081/swagger-ui/index.html
-
权限认证体系:基于 JWT 实现无状态鉴权,Token 存入 Redis 有效期 24 小时,支持自动续期与登出注销
-
用户全生命周期管理:注册、登录、个人信息维护、头像上传、密码重置、账号注销
-
邮箱服务:集成 Spring Mail,通过 QQ 邮箱 SMTP 服务发送注册 / 密码重置验证码,验证码 Redis 缓存 1 分钟
-
安全管控:密码 MD5 加盐加密存储,基于 AOP 实现请求拦截与鉴权,非法请求自动拦截
-
日志体系:基于 Log4j2 实现多级别日志分离(INFO/DEBUG/ERROR)、异步写入、按大小 / 时间滚动归档,支持动态调整日志级别
- 知乎接口适配:适配知乎最新接口加密规则,解决 x-zse-93/x-zse-96 签名校验问题(参考逆向方案:https://github.com/srx-2000/spider_collection/issues/18)
- 数据爬取:基于 HttpClient5 + Jsoup 实现知乎用户信息、互动行为、关注关系、问答内容等数据的爬取
- 分布式服务暴露:基于 Dubbo 实现爬虫服务接口化,通过 Nacos 注册中心供核心业务模块调用
- 定时同步:支持手动触发 / 定时任务两种模式,同步知乎热门数据、用户行为数据至本地数据库(TODO)
- 单元测试覆盖:基于 JUnit + Mockito 实现核心爬虫逻辑单测,保证服务稳定性
- 业务逻辑编排:用户行为分析、知乎数据同步、IPNet 模型调用、推荐结果生成等核心业务逻辑实现
- Dubbo 服务调用:作为消费者调用爬虫模块的 RPC 服务,实现业务与爬虫逻辑解耦
- 模型集成:封装 IPNet 时序链接预测模型 API,实现用户交互模式挖掘、时序链接预测、个性化推荐
- 数据处理:知乎用户行为数据清洗、特征提取、时序序列构建,为模型预测提供标准化输入
- 数据持久化:基于 MyBatis 实现数据库操作,封装通用 Mapper 接口,支持复杂查询与分页
- 缓存管理:基于 Spring Data Redis 实现热点数据缓存、分布式锁、Token 与验证码存储
- 代码生成:配套 MyBatisGenerator 工具,一键生成实体类、Mapper 接口、XML 映射文件
- 核心框架:SpringBoot 4.x + Spring Framework 6.x
- 微服务与 RPC:Dubbo 3.x + Nacos 2.x
- 数据访问:MyBatis 3.x
- 数据库与缓存:MySQL 8.0+ + Redis 6.x+
- 权限认证:JWT 4.x
- 爬虫核心:HttpClient5 + Jsoup + Fastjson2
- 日志与测试:Log4j2 + JUnit 5 + Mockito
- 核心框架:Vue3 + Element Plus
- 路由管理:Vue Router
- 状态管理:Pinia
- HTTP 客户端:Axios
- 可视化:ECharts
- 服务注册与配置中心:Nacos 2.x
- 缓存:Redis 6.x+
- 数据库:MySQL 8.0+
- 构建工具:Maven 3.8+
- 版本控制:Git
- 接口文档:SpringDoc OpenAPI 3.0
- 代码生成:MyBatisGenerator
项目集成 SpringDoc OpenAPI 3.0,服务启动后可直接访问在线接口文档,支持在线调试:
- Swagger 接口文档:http://localhost:8080/swagger-ui.html
- OpenAPI 规范地址:http://localhost:8080/v3/api-docs
- 本项目仅用于学术研究与学习交流,严禁用于任何商业用途,请勿滥用接口爬取知乎平台数据。
- 项目中涉及的知乎接口逆向、爬虫相关代码,仅用于技术研究,使用者需遵守《网络安全法》《数据安全法》等相关法律法规,请勿非法获取、存储、使用他人数据。
- 使用者因违反本声明或相关法律法规造成的一切后果,由使用者自行承担,项目开发者不承担任何法律责任。