3.8 KiB
3.8 KiB
定时搜索脚本使用说明
脚本功能
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. 使用启动脚本(推荐)
# 在项目根目录下运行
./run_cron_crawl.sh
2. 直接运行Python脚本
cd gx_gp_monitor
python cron_crawl.py
3. 使用crontab定时运行
在Ubuntu系统上设置定时任务:
# 编辑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 中配置关键词:
crawler:
keyword: ["大化", "信息化"] # 支持多个关键词
企业微信配置
确保企业微信配置正确:
wechat_app:
enabled: true # 必须启用
corp_id: "your_corp_id"
agent_id: "your_agent_id"
secret: "your_secret"
数据库配置
确保数据库配置正确:
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输出日志保存在您配置的文件中。
# 查看最新日志
tail -f logs/gx_gp_monitor.log
# 查看crontab日志
tail -f /home/v6ole/pyproject/GX-gp-notify/logs/cron.log
注意事项
-
权限设置:确保脚本有执行权限
chmod +x cron_crawl.py -
Python环境:确保Python环境和依赖已正确安装
pip install -r gx_gp_monitor/requirements.txt -
路径配置:crontab中的路径必须是绝对路径
-
时区设置:确保系统时区设置正确,影响定时任务执行时间
-
资源消耗:搜索过程中会消耗一定的CPU和网络资源,建议在非高峰期运行
故障排除
脚本无法运行
- 检查Python环境和依赖
- 检查配置文件路径
- 检查数据库连接
企业微信通知失败
- 检查企业微信配置
- 检查网络连接
- 查看企业微信应用权限
数据库连接失败
- 检查数据库配置
- 检查数据库服务状态
- 检查网络连接
crontab不执行
- 检查crontab语法
- 检查脚本路径
- 检查用户权限
- 查看系统日志:
sudo grep CRON /var/log/syslog