Files
GX-gp-notify/logs/gx_gp_monitor.log.2
T
v6ole c548a8b5bd ```
feat(core): 添加大化县政府网采购公告数据表和相关功能

- 创建 dahuagov_announcements 表用于存储大化县政府网采购公告
- 添加相关索引以提高查询性能
- 实现 save_dahuagov_announcements、get_new_dahuagov_announcements
  和 mark_dahuagov_announcements_sent 方法
- 修改统计查询以包含大化县公告数据
- 更新内容哈希检查逻辑以支持新表

feat(cron): 集成大化县政府网采购公告爬取功能

- 导入大化县政府网爬虫模块
- 修改定时任务流程以同时爬取广西政府采购网和大化县政府网
- 对不同来源公告采用不同处理策略:
  - 广西政府采购网:关键词筛选后推送
  - 大化县政府网:全部推送,不过滤关键词
- 分别处理和统计两个来源的公告数据
- 实现独立的通知发送和状态更新机制

feat(notification): 优化企业微信通知显示大化县来源标识

- 为不同来源公告添加前缀标识(【大化县政府网】或【广西政府采购网】)
- 根据公告来源动态调整通知标题:
  - 单一来源显示具体来源
  - 双来源显示"双源监控"标识
- 改进通知卡片的来源区分度,便于用户识别公告来源
```
2026-05-09 10:55:00 +08:00

140 lines
15 KiB
Plaintext

2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: vlN4cpR79+nVcy2Cvf22D4nsbOxqtyYFlVO3nvPdIz2NLVZTCr...
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 060aff2e6666d1df9c957ebb61d214664c64e72f
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 060aff2e6666d1df9c957ebb61d214664c64e72f
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名...
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event
2026-05-06 15:07:43 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=crawl_now, user=NongGuangGuo
2026-05-06 15:07:43 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: crawl_now, user: NongGuangGuo
2026-05-06 15:07:43 - gx_gp_monitor.wechat.message_handler - INFO - 用户 NongGuangGuo 触发立即搜索
2026-05-06 15:07:43 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: False)
2026-05-06 15:07:43 - gx_gp_monitor.core.reliability - INFO - 健康检查通过
2026-05-06 15:07:43 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源
2026-05-06 15:07:43 - gx_gp_monitor - INFO - 开始爬取 采购公告
2026-05-06 15:07:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:44 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 0.53秒
2026-05-06 15:07:44 - gx_gp_monitor - INFO - 开始爬取 结果公告
2026-05-06 15:07:44 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:44 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.43秒
2026-05-06 15:07:44 - gx_gp_monitor - INFO - 开始爬取 合同公告
2026-05-06 15:07:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:45 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.29秒
2026-05-06 15:07:45 - gx_gp_monitor - INFO - 开始爬取 更正公告
2026-05-06 15:07:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:45 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.38秒
2026-05-06 15:07:45 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示
2026-05-06 15:07:45 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:45 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.31秒
2026-05-06 15:07:45 - gx_gp_monitor - INFO - 开始爬取 单一来源公示
2026-05-06 15:07:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:46 - gx_gp_monitor - INFO - 单一来源公示 爬取完成,共获取 100 条公告,耗时 0.34秒
2026-05-06 15:07:46 - gx_gp_monitor - INFO - 开始爬取 电子卖场公示
2026-05-06 15:07:46 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:46 - gx_gp_monitor - INFO - 电子卖场公示 爬取完成,共获取 100 条公告,耗时 0.51秒
2026-05-06 15:07:46 - gx_gp_monitor - INFO - 开始爬取 履约验收公示
2026-05-06 15:07:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 履约验收公示 爬取完成,共获取 100 条公告,耗时 0.30秒
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 开始爬取 工程类公告
2026-05-06 15:07:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 工程类公告 爬取完成,共获取 100 条公告,耗时 0.27秒
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 开始爬取 框架协议征集公告
2026-05-06 15:07:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 框架协议征集公告 爬取完成,共获取 100 条公告,耗时 0.35秒
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 开始爬取 框架协议入围结果公告
2026-05-06 15:07:47 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 框架协议入围结果公告 爬取完成,共获取 100 条公告,耗时 0.32秒
2026-05-06 15:07:47 - gx_gp_monitor - INFO - 开始爬取 框架协议成交结果汇总公告
2026-05-06 15:07:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:48 - gx_gp_monitor - INFO - 框架协议成交结果汇总公告 爬取完成,共获取 100 条公告,耗时 0.35秒
2026-05-06 15:07:48 - gx_gp_monitor - INFO - 开始爬取 采购意向公开
2026-05-06 15:07:48 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:07:48 - gx_gp_monitor - INFO - 采购意向公开 爬取完成,共获取 100 条公告,耗时 0.33秒
2026-05-06 15:07:48 - gx_gp_monitor.crawler.spider - INFO - 爬取完成: 共处理 13 个来源,成功 13 个,失败 0 个,获取 1300 条公告
2026-05-06 15:07:48 - gx_gp_monitor.main - INFO - 搜索到 1300 条原始公告
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 开始按来源保存 1300 条公告,每个来源最多保留 100 条
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 数据库连接错误: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 批量保存公告失败: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement1 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 数据库连接错误: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 批量保存公告失败: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement2 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 数据库连接错误: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 批量保存公告失败: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement3 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 数据库连接错误: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 批量保存公告失败: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement4 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 数据库连接错误: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.core.database - ERROR - 批量保存公告失败: connection already closed
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement5 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement6 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement7 保存了 1 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement10 保存了 1 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement11 保存了 1 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement20 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement21 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 0 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 ZcyAnnouncement23 保存了 0 条公告
2026-05-06 15:07:48 - gx_gp_monitor.core.database - INFO - 批量保存公告完成,成功保存 1 条
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 来源 61-266648 保存了 1 条公告
2026-05-06 15:07:48 - gx_gp_monitor.storage.postgresql - INFO - 按来源保存完成,总计保存 4 条公告
2026-05-06 15:07:48 - gx_gp_monitor.main - INFO - 保存自动爬取公告完成:共保存 4 条,按来源统计: {'ZcyAnnouncement1': 0, 'ZcyAnnouncement2': 0, 'ZcyAnnouncement3': 0, 'ZcyAnnouncement4': 0, 'ZcyAnnouncement5': 0, 'ZcyAnnouncement6': 0, 'ZcyAnnouncement7': 1, 'ZcyAnnouncement10': 1, 'ZcyAnnouncement11': 1, 'ZcyAnnouncement20': 0, 'ZcyAnnouncement21': 0, 'ZcyAnnouncement23': 0, '61-266648': 1}
2026-05-06 15:07:48 - gx_gp_monitor.main - INFO - 筛选出 1300 条新公告
2026-05-06 15:07:48 - gx_gp_monitor.filters.filters - INFO - 来源筛选: 1300 -> 1300 条公告
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 512
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: GwLOHlMWE3qBsHJ3DegXZk5RGOb0hEg2g9SbYIvxkhynxr/43t...
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: 052516f0e87dd3793a1035dccb0f3b3d9fd806de
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: 052516f0e87dd3793a1035dccb0f3b3d9fd806de
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名...
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=text
2026-05-06 15:07:49 - gx_gp_monitor.wechat.callback_server - INFO - 处理文本消息: content=河池分行大化瑶族自治县中医医院结算系
统项目..., user=NongGuangGuo
2026-05-06 15:07:49 - gx_gp_monitor.wechat.message_handler - INFO - 处理文本消息: 河池分行大化瑶族自治县中医医院结算系
统项目, user: NongGuangGuo
2026-05-06 15:07:49 - gx_gp_monitor.wechat.message_handler - INFO - 用户 NongGuangGuo 关键词搜索: ['河池分行大化瑶族自治县中医医院结算系', '统项目']
2026-05-06 15:07:49 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: True)
2026-05-06 15:07:49 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源
2026-05-06 15:07:49 - gx_gp_monitor - INFO - 开始爬取 采购公告
2026-05-06 15:07:49 - gx_gp_monitor.filters.filters - INFO - 去重筛选: 移除了 803 条重复公告
2026-05-06 15:07:49 - gx_gp_monitor.filters.filters - INFO - 关键词筛选: 497 -> 0 条公告
2026-05-06 15:07:49 - gx_gp_monitor.filters.filters - INFO - 筛选完成: 总数 1300 -> 筛选后 0 (关键词: 497, 日期: 0, 去重: 803, 来源: 0)
2026-05-06 15:07:49 - gx_gp_monitor.main - INFO - 筛选后剩余 0 条公告
2026-05-06 15:07:49 - gx_gp_monitor.storage.md_generator - INFO - Markdown文件已保存到: onu.md (共 0 条公告)
2026-05-06 15:07:49 - gx_gp_monitor.main - INFO - 爬取任务完成: {'success': True, 'total_crawled': 1300, 'filtered': 0, 'saved': 0, 'markdown_generated': True, 'notification_sent': False, 'filter_stats': {'keyword_filtered': 1797, 'date_filtered': 0, 'duplicate_filtered': 803, 'source_filtered': 0}}
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - ERROR - ✅ XML解析成功,提取的encrypt长度: 472
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - ERROR - 提取的encrypt前50字符: p4+cMpoxGV5kJJ2lLlM6u6/HHN4OJMSHH/wxWwSxKkZGGxajZn...
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - ERROR - 计算的签名: fc48810bdc9c0216f44d1adde162007b4cca0790
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - ERROR - 接收的签名: fc48810bdc9c0216f44d1adde162007b4cca0790
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - ERROR - 签名匹配: True
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - ERROR - 尝试使用默认token计算签名...
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - INFO - 收到企业微信消息: 类型=event
2026-05-06 15:07:51 - gx_gp_monitor.wechat.callback_server - INFO - 处理事件消息: event=click, event_key=crawl_now, user=NongGuangGuo
2026-05-06 15:07:51 - gx_gp_monitor.wechat.message_handler - INFO - 处理事件: click, key: crawl_now, user: NongGuangGuo
2026-05-06 15:07:51 - gx_gp_monitor.wechat.message_handler - INFO - 用户 NongGuangGuo 触发立即搜索
2026-05-06 15:07:51 - gx_gp_monitor.main - INFO - 开始执行搜索任务 (手动搜索: False)
2026-05-06 15:07:51 - gx_gp_monitor.crawler.spider - INFO - 开始爬取 13 个公告来源
2026-05-06 15:07:51 - gx_gp_monitor - INFO - 开始爬取 采购公告
2026-05-06 15:08:20 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:08:20 - gx_gp_monitor - INFO - 采购公告 爬取完成,共获取 100 条公告,耗时 30.54秒
2026-05-06 15:08:20 - gx_gp_monitor - INFO - 开始爬取 结果公告
2026-05-06 15:08:20 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:08:20 - gx_gp_monitor - INFO - 结果公告 爬取完成,共获取 100 条公告,耗时 0.34秒
2026-05-06 15:08:20 - gx_gp_monitor - INFO - 开始爬取 合同公告
2026-05-06 15:08:20 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:08:20 - gx_gp_monitor - INFO - 合同公告 爬取完成,共获取 100 条公告,耗时 0.31秒
2026-05-06 15:08:20 - gx_gp_monitor - INFO - 开始爬取 更正公告
2026-05-06 15:08:21 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:08:21 - gx_gp_monitor - INFO - 更正公告 爬取完成,共获取 100 条公告,耗时 0.33秒
2026-05-06 15:08:21 - gx_gp_monitor - INFO - 开始爬取 招标文件预公示
2026-05-06 15:08:21 - gx_gp_monitor.crawler.parsers - INFO - 成功解析 100/100 条公告记录
2026-05-06 15:08:21 - gx_gp_monitor - INFO - 招标文件预公示 爬取完成,共获取 100 条公告,耗时 0.31秒
2026-05-06 15:08:21 - gx_gp_monitor - INFO - 开始爬取 单一来源公示