Files
GX-gp-notify/CRON_README.md
T

162 lines
3.8 KiB
Markdown

# 定时爬取脚本使用说明
## 脚本功能
`cron_crawl.py` 是一个用于定时爬取广西政府采购网公告的脚本,具有以下功能:
- ✅ 从 `gx_gp_monitor/config/config.yaml` 读取关键词配置
- ✅ 爬取最新的公告(数据库中没有的)
- ✅ 自动筛选匹配关键词的公告
- ✅ 将筛选结果保存到数据库
- ✅ 以卡片形式发送企业微信通知
## 文件结构
```
project/
├── venv/ # Python虚拟环境
├── gx_gp_monitor/
│ ├── cron_crawl.py # 定时爬取主脚本
│ └── config/config.yaml # 配置文件
├── run_cron_crawl.sh # 启动脚本(自动激活虚拟环境)
├── CRON_README.md # 使用说明
└── cron_example.txt # crontab配置示例
```
## 使用方法
### 1. 使用启动脚本(推荐)
```bash
# 在项目根目录下运行
./run_cron_crawl.sh
```
### 2. 直接运行Python脚本
```bash
cd gx_gp_monitor
python cron_crawl.py
```
### 3. 使用crontab定时运行
在Ubuntu系统上设置定时任务:
```bash
# 编辑crontab
crontab -e
# 添加定时任务(例如:每小时执行一次)
0 * * * * cd /home/v6ole/pyproject/GX-gp-notify && ./run_cron_crawl.sh >> /home/v6ole/pyproject/GX-gp-notify/logs/cron.log 2>&1
# 或者每30分钟执行一次
*/30 * * * * cd /home/v6ole/pyproject/GX-gp-notify && ./run_cron_crawl.sh >> /home/v6ole/pyproject/GX-gp-notify/logs/cron.log 2>&1
# 或者每天早上9点执行
0 9 * * * cd /home/v6ole/pyproject/GX-gp-notify && ./run_cron_crawl.sh >> /home/v6ole/pyproject/GX-gp-notify/logs/cron.log 2>&1
```
**注意**: 脚本会自动激活项目中的虚拟环境(`venv`目录),无需手动处理虚拟环境。
### 3. 脚本输出示例
```
=== 定时爬取任务完成 ===
总共爬取: 1300 条公告
新增公告: 5 条
关键词筛选: 2 条
保存到数据库: 2 条
企业微信通知: 成功
```
## 配置说明
### 关键词配置
`gx_gp_monitor/config/config.yaml` 中配置关键词:
```yaml
crawler:
keyword: ["大化", "信息化"] # 支持多个关键词
```
### 企业微信配置
确保企业微信配置正确:
```yaml
wechat_app:
enabled: true # 必须启用
corp_id: "your_corp_id"
agent_id: "your_agent_id"
secret: "your_secret"
```
### 数据库配置
确保数据库配置正确:
```yaml
database:
enabled: true # 必须启用
host: "your_db_host"
port: 5432
name: "your_db_name"
user: "your_db_user"
password: "your_db_password"
```
## 日志查看
脚本运行日志保存在 `logs/gx_gp_monitor.log`,crontab输出日志保存在您配置的文件中。
```bash
# 查看最新日志
tail -f logs/gx_gp_monitor.log
# 查看crontab日志
tail -f /home/v6ole/pyproject/GX-gp-notify/logs/cron.log
```
## 注意事项
1. **权限设置**:确保脚本有执行权限
```bash
chmod +x cron_crawl.py
```
2. **Python环境**:确保Python环境和依赖已正确安装
```bash
pip install -r gx_gp_monitor/requirements.txt
```
3. **路径配置**:crontab中的路径必须是绝对路径
4. **时区设置**:确保系统时区设置正确,影响定时任务执行时间
5. **资源消耗**:爬取过程中会消耗一定的CPU和网络资源,建议在非高峰期运行
## 故障排除
### 脚本无法运行
- 检查Python环境和依赖
- 检查配置文件路径
- 检查数据库连接
### 企业微信通知失败
- 检查企业微信配置
- 检查网络连接
- 查看企业微信应用权限
### 数据库连接失败
- 检查数据库配置
- 检查数据库服务状态
- 检查网络连接
### crontab不执行
- 检查crontab语法
- 检查脚本路径
- 检查用户权限
- 查看系统日志:`sudo grep CRON /var/log/syslog`