162 lines
3.8 KiB
Markdown
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`
|