211 lines
6.1 KiB
Markdown
211 lines
6.1 KiB
Markdown
# 🔍 易搜高 - 微信公众号文章爬虫系统
|
||
|
||
一个功能完整的微信公众号文章爬虫与自媒体监控系统,支持文章采集、数据分析、用户管理等功能。
|
||
|
||

|
||

|
||

|
||
|
||
## ✨ 功能特性
|
||
|
||
### 📱 自媒体监控系统
|
||
- **文章监控**:实时追踪公众号、头条号、百家号等平台的最新文章
|
||
- **数据分析**:统计阅读量、点赞数、评论数、分享数等关键指标
|
||
- **历史文章**:浏览和管理已采集的文章列表
|
||
- **文章详情**:查看文章完整内容、统计数据和元信息
|
||
- **用户中心**:个人信息管理、收藏夹、浏览历史
|
||
|
||
### 🚀 爬虫系统
|
||
- **提取公众号主页**:从文章链接获取公众号主页
|
||
- **获取文章列表**:批量获取公众号所有历史文章
|
||
- **批量下载文章**:下载文章内容和图片资源
|
||
- **获取文章详情**:获取阅读量、点赞数、评论等详细数据
|
||
|
||
### 👥 用户管理
|
||
- **用户注册/登录**:完整的用户认证系统
|
||
- **登录状态同步**:所有页面统一的登录状态管理
|
||
- **安全认证**:基于 Token 的安全认证机制
|
||
|
||
## 🏗️ 项目架构
|
||
|
||
```
|
||
Access_wechat_article/
|
||
├── backend/ # 后端服务(Go)
|
||
│ ├── api/ # API 接口
|
||
│ ├── cmd/ # 命令行工具
|
||
│ ├── configs/ # 配置文件
|
||
│ ├── pkg/ # 核心包
|
||
│ └── tools/ # 工具函数
|
||
├── frontend/ # 前端页面(HTML/CSS/JS)
|
||
│ ├── css/ # 样式文件
|
||
│ ├── js/ # JavaScript 文件
|
||
│ ├── frontend.html # 自媒体监控首页
|
||
│ ├── index.html # 爬虫系统页面
|
||
│ ├── login.html # 登录页面
|
||
│ ├── register.html # 注册页面
|
||
│ ├── user-center.html # 用户中心
|
||
│ ├── history-articles.html # 历史文章列表
|
||
│ └── article-detail.html # 文章详情页
|
||
├── database/ # 数据库文件
|
||
└── data/ # 数据存储目录
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- **Go**: 1.24.0 或更高版本
|
||
- **Python**: 3.x(用于前端服务器)
|
||
- **浏览器**: Chrome、Firefox、Edge 等现代浏览器
|
||
|
||
### 安装步骤
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
git clone <repository-url>
|
||
cd Access_wechat_article
|
||
```
|
||
|
||
2. **安装后端依赖**
|
||
```bash
|
||
cd backend
|
||
go mod download
|
||
```
|
||
|
||
3. **启动系统**
|
||
|
||
**方式一:使用启动脚本(推荐)**
|
||
```bash
|
||
# Windows 系统
|
||
双击运行 "启动Web系统.bat"
|
||
```
|
||
|
||
**方式二:手动启动**
|
||
```bash
|
||
# 启动 API 服务器
|
||
cd backend/api
|
||
go run start_api.go
|
||
|
||
# 新开终端,启动前端服务器
|
||
cd frontend
|
||
python -m http.server 8000
|
||
```
|
||
|
||
4. **访问系统**
|
||
- 前端界面:http://localhost:8000
|
||
- API 服务器:http://localhost:8080
|
||
|
||
## 📖 使用说明
|
||
|
||
### 1. 自媒体监控系统
|
||
|
||
访问 `http://localhost:8000/frontend.html`
|
||
|
||
- **首页**:查看最新文章列表和热门内容
|
||
- **历史文章**:浏览和搜索已采集的文章
|
||
- **文章详情**:查看文章完整内容和数据分析
|
||
- **用户中心**:管理个人信息和收藏
|
||
|
||
### 2. 爬虫系统
|
||
|
||
访问 `http://localhost:8000/index.html`
|
||
|
||
#### 提取公众号主页
|
||
1. 输入公众号下任意一篇文章链接
|
||
2. 点击"提取主页链接"
|
||
3. 获取公众号主页 URL
|
||
|
||
#### 获取文章列表
|
||
1. 使用 Fiddler 抓取包含认证信息的 URL
|
||
2. 粘贴完整的 Access Token URL
|
||
3. 设置获取页数(留空表示全部)
|
||
4. 点击"开始获取"
|
||
|
||
#### 批量下载文章
|
||
1. 输入公众号名称或文章链接
|
||
2. 选择是否保存图片和内容
|
||
3. 点击"开始批量下载"
|
||
|
||
#### 获取文章详情
|
||
1. 粘贴 Access Token URL
|
||
2. 设置获取页数
|
||
3. 点击"开始获取"
|
||
4. 数据保存在 `data/公众号名称/文章详细/` 目录
|
||
|
||
### 3. 用户系统
|
||
|
||
#### 注册账号
|
||
1. 访问注册页面:`http://localhost:8000/register.html`
|
||
2. 填写用户名、邮箱、密码
|
||
3. 点击"立即注册"
|
||
|
||
#### 登录
|
||
1. 访问登录页面:`http://localhost:8000/login.html`
|
||
2. 输入用户名和密码
|
||
3. 选择"记住我"可保持登录状态
|
||
4. 登录成功后自动跳转到首页
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
### 后端
|
||
- **语言**: Go 1.24.0
|
||
- **HTTP 客户端**: go-resty/resty v2.17.0
|
||
- **数据库**: SQLite (modernc.org/sqlite v1.40.1)
|
||
|
||
### 前端
|
||
- **HTML5/CSS3**: 响应式布局
|
||
- **JavaScript**: 原生 JS + jQuery 3.6.0
|
||
- **UI 设计**: 渐变配色、卡片式布局、动画效果
|
||
|
||
## 📊 API 接口
|
||
|
||
### 用户相关
|
||
- `POST /api/user/register` - 用户注册
|
||
- `POST /api/user/login` - 用户登录
|
||
- `POST /api/user/logout` - 用户登出
|
||
- `GET /api/user/info` - 获取用户信息
|
||
|
||
### 文章相关
|
||
- `GET /api/articles` - 获取文章列表
|
||
- `GET /api/articles/:id` - 获取文章详情
|
||
- `POST /api/articles/collect` - 收藏文章
|
||
|
||
### 爬虫相关
|
||
- `POST /api/crawler/homepage` - 提取公众号主页
|
||
- `POST /api/crawler/articles` - 获取文章列表
|
||
- `POST /api/crawler/batch` - 批量下载文章
|
||
- `POST /api/crawler/detail` - 获取文章详情
|
||
|
||
## 📝 注意事项
|
||
|
||
1. **网络要求**:需要稳定的网络连接访问微信公众号平台
|
||
2. **认证信息**:部分功能需要有效的 Access Token
|
||
3. **数据存储**:采集的数据保存在 `data/` 目录下
|
||
4. **浏览器兼容**:建议使用 Chrome、Firefox、Edge 等现代浏览器
|
||
5. **服务器端口**:确保 8000 和 8080 端口未被占用
|
||
|
||
## 🔒 安全说明
|
||
|
||
- 用户密码经过加密存储
|
||
- 使用 Token 认证机制保护 API
|
||
- 所有敏感操作需要登录验证
|
||
- 支持会话管理和自动过期
|
||
|
||
## 📄 许可证
|
||
|
||
本项目仅供学习研究使用,请勿用于商业用途。
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
## 📧 联系方式
|
||
|
||
如有问题或建议,请通过以下方式联系:
|
||
- 提交 Issue
|
||
- 发送邮件
|
||
|
||
---
|
||
|
||
**⚠️ 免责声明**:本工具仅供学习交流使用,使用者需遵守相关法律法规和平台规则,不得用于非法用途。使用本工具产生的任何后果由使用者自行承担。
|