# 定时搜索脚本使用说明 ## 脚本功能 `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`