Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 85edf97487 | |||
| 3d0eecaf9b | |||
| 30af2c87b9 | |||
| e492965ba1 | |||
| 55f1e3be07 | |||
| a2aa58e387 |
@@ -0,0 +1,128 @@
|
||||
# 《Looping Data》「数据缺口显性化」核心论证推理链
|
||||
|
||||
> 用「观点 → 事实 → 逻辑 → 结论」把《如何用 Loop Engineering 建设数据分析智能体》及《Looping Data 落地手记》中关于「数据缺口显性化」的论证骨架还原出来,并对照 GitHub 同类项目的做法,串成一条因果主线。
|
||||
>
|
||||
> 每条链的**结论**尽量作为下一条的**观点/前提**。
|
||||
|
||||
## 串链意图
|
||||
|
||||
主线叙事:数据分析智能体最难的不是回答问题,而是**诚实面对自己答不了什么**(链 0–1)→ 作者用「状态机守卫 + 显性标注 + 可信度链」三步把缺口显性化做进领域层(链 2–4)→ 治理约束必须有出口,否则死锁(链 5)→ GitHub 同类项目在五个维度上的对标与差距(链 6–8)→ 缺口显性化是当前开源社区最稀缺的设计模式(收束)。
|
||||
|
||||
---
|
||||
|
||||
## 链 0(总纲):数据分析智能体最难的不是回答问题,而是诚实面对「答不了什么」
|
||||
|
||||
- **观点:** 数据分析智能体最难的环节不是生成 SQL 或画图,而是当数据/语义/规则/权限不足时,系统能诚实暴露缺口而非假装能算。
|
||||
- **事实:**
|
||||
- 作者明确判断:「数据缺口显性化」是最难的一环(第二篇 §四 标题)。
|
||||
- 普通 ChatBI 的核心问题:「系统容易把'不确定'包装成确定结论」(第一篇 §二)。
|
||||
- 三条设计原则中,「缺口显性化」与「任务驱动」「能力沉淀」并列,定义为「系统必须说明哪些问题能够可靠回答,哪些问题因为数据、语义、规则或权限不足不能可靠回答」(第一篇 §一)。
|
||||
- **逻辑:** **排除式**推理——如果系统只追求「答对当前问题」,它必然把不确定包装成确定(因为暴露缺口等于承认能力不足,会降低用户信任);但企业场景中,一个被包装的错误结论比「暂缓执行」危害更大——它驱动错误的经营动作。因此,缺口显性化不是锦上添花,而是可信度的前提。
|
||||
- **结论:** 缺口显性化是数据分析智能体从「问数工具」升级为「组织级分析能力」必须攻克的核心难题。(→ 链 1)
|
||||
|
||||
---
|
||||
|
||||
## 链 1(问题诊断):缺口之所以难「显性化」,是因为系统天然倾向于隐藏它
|
||||
|
||||
- **观点:** 数据缺口之所以难以被显性化,根源在于系统的激励机制与产品设计都在鼓励「给出答案」而非「暴露缺口」。
|
||||
- **事实:**
|
||||
- 普通 ChatBI 的五大问题中,第③条直指核心:「系统容易把'不确定'包装成确定结论」(第一篇 §二)。
|
||||
- 指标口径、业务规则、权限边界「经常隐含在人的经验里」——系统没有结构化表达这些边界的机制(第一篇 §二)。
|
||||
- 对话式产品形态加剧了这一问题:「对话适合发起和追问,不适合承载状态」——缺口有长生命周期(可能挂三天等补口径),对话时间线无法表达(第二篇 §一)。
|
||||
- **逻辑:** **因果**推理——因为系统以「回答率」为核心指标,暴露缺口等于降低指标;因为对话产品天然不支持长生命周期对象的状态追踪;因为语义/权限边界未被结构化建模——三重因素叠加,系统既无能力、也无动力、也无合适的产品形态来显性化缺口。
|
||||
- **结论:** 要让缺口显性化,必须同时解决三个问题:结构化建模缺口、在工作台中(而非对话中)表达缺口、用流程强制暴露缺口。(→ 链 2)
|
||||
|
||||
---
|
||||
|
||||
## 链 2(机制 · 状态机守卫):用领域层纯函数强制缺口暴露,绕不过去
|
||||
|
||||
- **观点:** 作者把缺口显性化的核心机制设计为状态机守卫——在领域层设置 6 条控制链路,每条都是不可绕过的纯函数,确保存在阻塞性缺口时无法推进到下一阶段。
|
||||
- **事实:**
|
||||
- 6 条控制链路:阶段 3 没跑语义检查不能进阶段 4;存在阻塞性缺口不能进阶段 5;没执行分析不能进阶段 6;归因没经过专家评审不能进阶段 7;没生成报告不能进阶段 8;没完成资产沉淀不能完结(第二篇 §四)。
|
||||
- 实现方式:「每个守卫都是领域层的纯函数,绕不过去」(第二篇 §四)。
|
||||
- 协作阶段 3(语义检查)明确列出四类缺口:指标/规则/权限/可信度(第一篇 §四)。
|
||||
- **逻辑:** **排除式**推理——如果守卫不是纯函数(可被绕过或跳过),系统就会在「赶进度」的压力下偷偷跳过缺口检查;唯有把守卫做成领域层不可绕过的硬约束,才能确保「存在阻塞性缺口 → 无法推进」这一逻辑必然成立。这是用工程手段解决「激励机制倒逼隐藏缺口」的产品问题。
|
||||
- **结论:** 缺口显性化的技术核心是把「能否推进」的判断权交给领域层纯函数,而非依赖模型自觉或人工检查。(→ 链 3)
|
||||
|
||||
---
|
||||
|
||||
## 链 3(机制 · 显性标注):被阻塞的 Case 不空着,而是明确告诉你卡在哪、等谁
|
||||
|
||||
- **观点:** 状态机守卫解决了「能不能推进」的问题,但用户还需要知道「卡在哪、等谁」——作者的做法是在图表区显性标注「暂缓执行」并列出具体缺口和被分派的角色。
|
||||
- **事实:**
|
||||
- 界面表达:「被缺口阻塞的 Case,图表区不是空着,而是显性地标注『暂缓执行』,旁边列出阻塞它的具体缺口和被分派的角色」(第二篇 §四)。
|
||||
- 设计原则:「系统不假装能算,也不偷偷少算,它明确告诉你卡在哪、等谁」(第二篇 §四)。
|
||||
- 协作矩阵中,阶段 3 识别缺口后,阶段 4 由智能体「分派缺口任务,更新 Case 状态」,不同角色(业务专家/数据团队/权限管理员)各有明确分工(第一篇 §四)。
|
||||
- **逻辑:** **因果**推理——因为缺口被显性标注,用户看到的不是「系统失败了」而是「系统在等待 X 补 Y」;因为标注包含具体缺口和角色,等待变成了可追踪的协作任务而非黑箱。这让「等待」从负面体验转化为可治理的工作流。
|
||||
- **结论:** 显性标注把「系统不能回答」从一种失败信号转化为一种可协作的工作状态。(→ 链 4)
|
||||
|
||||
---
|
||||
|
||||
## 链 4(机制 · 可信度链):缺口显性化的副产品是把可信度从形容词变成可追溯的链
|
||||
|
||||
- **观点:** 缺口显性化不仅解决了「答不了什么」的问题,还意外带来一个关键收益——让「可信度」从一个贴在结论上的形容词,变成一条可追溯的证据链。
|
||||
- **事实:**
|
||||
- 效果描述:「可信度不再是一个贴在结论上的形容词,而是一条可以追溯的链——看到结论的人可以往回查,这个数字经过了语义检查、经过了专家确认、口径版本是哪一个」(第二篇 §四)。
|
||||
- 阶段 6 专家确认环节:「标注可信度,记录修正来源」(第一篇 §四)。
|
||||
- 阶段 8 沉淀:「保留审计记录」(第一篇 §四)。
|
||||
- **逻辑:** **因果**推理——因为每个阶段都有不可绕过的守卫,结论必须经过语义检查 → 缺口补齐 → 执行分析 → 专家确认 → 报告生成 → 资产沉淀的完整链路;每一步都留下可追溯的记录,可信度因此从「模型输出的信心指数」变成了「可验证的链式证据」。
|
||||
- **结论:** 缺口显性化让可信度从主观判断变成了工程产物——这是它超越「诚实」之外的架构价值。(→ 链 5)
|
||||
|
||||
---
|
||||
|
||||
## 链 5(设计教训):每加一条治理约束,都要同时设计它的出口
|
||||
|
||||
- **观点:** 作者在实现缺口显性化时踩到了一个死锁 bug,并提炼出一条关键设计规律:治理约束必须有出口,否则系统会卡在某个状态永远无法推进。
|
||||
- **事实:**
|
||||
- 死锁案例:第一版中,带挂起归因的 Case 永远卡在阶段 6——涉及权限缺口的归因行在审批通过前挂起,不能被专家评审,也不进报告;但审批可能永远不来(第二篇 §五)。
|
||||
- 设计规律:「每加一条治理约束,都要同时设计它的出口」(第二篇 §五)。
|
||||
- 解决方案:「挂起的归因现在的语义是:Case 可以带着未决问题继续走,未决本身被如实记录」(第二篇 §五)。
|
||||
- 同类设计:权限审批必须指定审批人和脱敏方案,全程审计留痕——「出了问题要能回答『当时是谁、依据什么放行的』」(第二篇 §五)。
|
||||
- **逻辑:** **排除式**推理——如果治理约束没有出口,系统就会在「等待审批/等待补缺口/等待专家评审」等节点死锁;因为现实中审批可能被拒绝、缺口可能长期补不上、专家可能应接不暇——所以「一直等不到怎么办」是产品必须回答的问题,不能靠流程图上的「等待审批」一笔带过。
|
||||
- **结论:** 缺口显性化不是把路堵死,而是让系统在「带着未决问题继续走」和「如实记录未决」之间找到平衡。(→ 链 6)
|
||||
|
||||
---
|
||||
|
||||
## 链 6(GitHub 对照 · 缺口显性化):开源社区中最稀缺的模式——仅两个项目部分涉及
|
||||
|
||||
- **观点:** 在 GitHub 近半年的多 Agent 数据分析项目中,「缺口显性化」是最稀缺的设计模式——仅两个项目以不同形式部分涉及,但均未达到 Looping Data 的系统化程度。
|
||||
- **事实:**
|
||||
- **rakeshchada/portfolio-autopsy**——用「knowability classification」把每条建议标记为 KNOWABLE / HINDSIGHT / MIXED,显性区分「能从数据中知道的」和「需要事后才知道的」。这是最接近「缺口显性化」的开源实现,但仅作用于结论层面,未贯穿整个分析流程。
|
||||
- **databufflabs/databuff**(343 stars)——在 AIOps 巡检中显性暴露「假正常」状态(如 HTTP 200 隐藏 InsufficientStockException),本质是「数据质量缺口显性化」,但面向基础设施而非业务分析。
|
||||
- **zhongyu09/openchatbi**(604 stars)——Agent 在信息不完整时主动询问用户补充上下文,属于最基本的「缺口暴露」,但无结构化状态机支撑。
|
||||
- 其余项目(Varn1t/EDAgent、ASHHADgit87/AnalyticoGPT 等)均为单通问答或多 Agent 流水线,无显性化缺口机制。
|
||||
- **逻辑:** **对照**推理——将 Looping Data 的「状态机守卫 + 显性标注 + 可信度链」与 GitHub 最佳实现对比:portfolio-autopsy 只在结论层做标记,databuff 只在数据质量层做暴露,openchatbi 只做一次性询问。三者均未把缺口显性化做成贯穿全流程的领域层机制。
|
||||
- **结论:** 缺口显性化在开源社区中尚属空白——没有项目把它做成状态机守卫 + 全流程显性标注的系统化方案。(→ 链 7)
|
||||
|
||||
---
|
||||
|
||||
## 链 7(GitHub 对照 · 双循环与能力沉淀):有记忆机制但无结构化资产复用
|
||||
|
||||
- **观点:** GitHub 上多个项目实现了某种形式的「能力沉淀」,但沉淀的内容和方式与 Looping Data 的「结构化资产跨 Case 复用」有本质区别。
|
||||
- **事实:**
|
||||
- **claudomat-dev/claudomat-mini**(93 stars)——双文档记忆(Instructions + Observations),Stage 9 复盘将 Observations 提升为 Instructions,跨项目复用。最接近「能力沉淀」,但沉淀的是编码指令而非分析资产。
|
||||
- **portfolio-autopsy**——情景记忆积累历史教训,Agent 胜率从 31% 提升至 59%。沉淀的是策略经验,非结构化资产。
|
||||
- **cyqlelabs/mcp-dual-cycle-reasoner**(9 stars)——case-base 存储 problem/solution/outcome 三元组,语义相似度检索。最接近「案例资产复用」,但面向通用 Agent 而非数据分析。
|
||||
- **datagallery-lab/datafoundry**(307 stars)——「可复用输出和工作区资产」,支持跨会话复用文件。有资产沉淀但无结构化分类。
|
||||
- Looping Data 的资产分类:指标资产、规则资产、模板资产、Skill 资产、案例资产(第一篇 §五),每类有明确示例和复用机制(⟲ 复用 ×N 角标)。
|
||||
- **逻辑:** **对照**推理——GitHub 项目的「沉淀」多为通用记忆(指令、策略、案例),而 Looping Data 的「沉淀」是领域结构化的(指标/规则/模板/Skill/案例),且通过「资产带」实现跨 Case 的显性复用。前者是「记住发生了什么」,后者是「沉淀了什么能力、能复用于什么场景」。
|
||||
- **结论:** 能力沉淀在开源社区已有多种实现,但「领域结构化 + 跨 Case 显性复用 + 复用计数治理」的组合设计尚未出现。(→ 链 8)
|
||||
|
||||
---
|
||||
|
||||
## 链 8(GitHub 对照 · 阶段治理与人类在环):有阶段门控但无分析领域特化
|
||||
|
||||
- **观点:** GitHub 上存在多个带阶段门控和人类在环审核的项目,但它们面向的是编码或通用工作流,而非数据分析领域特有的语义检查、归因确认、口径审计。
|
||||
- **事实:**
|
||||
- **claudomat-mini**——17 阶段 wave loop + 双评审员门控(Karen 验证 source-claim,Jenny 验证 spec-semantic)。门控最详细,但面向功能开发。
|
||||
- **RedLynx101/Promethean**——四 Agent 流水线(分解→系统选择→编排→治理),每个阶段转换都是人类在环审批门控。有 L0-L5 自主度分级。
|
||||
- **databufflabs/databuff**——7 阶段 AIOps 路线图(See → Collaborate → Inspect → Diagnose → Fix → Predict → Answer),多 Agent 分发。
|
||||
- Looping Data 的 8 阶段:任务发起 → 分析规划 → 语义检查 → 补齐缺口 → 执行分析 → 专家确认 → 管理审阅 → 动作与沉淀(第一篇 §四)。每阶段有明确的角色分工和领域特化检查。
|
||||
- **逻辑:** **对照**推理——阶段门控不是新模式,但门控的「内容」决定了价值:claudomat-mini 验证代码正确性,Looping Data 验证语义完整性、归因可信度、口径一致性——后者是数据分析领域特有的治理需求,现有开源项目未覆盖。
|
||||
- **结论:** 阶段门控和人类在环在开源社区已有成熟实现,但「数据分析领域特化的语义检查 + 归因确认 + 口径审计」这一组合尚未被任何开源项目系统化实现。(→ 收束)
|
||||
|
||||
---
|
||||
|
||||
## 收束(回到链 0)
|
||||
|
||||
> 数据分析智能体最难的不是回答问题(**链 0**)→ 而是诚实面对「答不了什么」,这需要结构化建模缺口、在工作台中表达缺口、用流程强制暴露缺口(**链 1**)→ 作者用状态机守卫(领域层纯函数)确保缺口无法被绕过(**链 2**)→ 用显性标注把「等待」转化为可协作的工作状态(**链 3**)→ 副产品是把可信度从形容词变成可追溯的证据链(**链 4**)→ 但治理约束必须有出口,否则系统死锁(**链 5**)→ GitHub 上缺口显性化是最稀缺的模式,仅两个项目部分涉及且未系统化(**链 6**)→ 能力沉淀有实现但无领域结构化资产复用(**链 7**)→ 阶段门控有实现但无分析领域特化的语义/归因/口径检查(**链 8**)→ 最终回到链 0:**缺口显性化是数据分析智能体从「问数工具」升级为「组织级分析能力」的核心难题,而 Looping Data 的方案(状态机守卫 + 显性标注 + 可信度链 + 治理出口)在开源社区中尚未出现直接对标实现。**
|
||||
@@ -0,0 +1,309 @@
|
||||
# 政策雷达分析报告 — 2026-07-21
|
||||
|
||||
> 分析范围:2026年7月10日-21日全部重要政策
|
||||
> 政策抓取数量:8 条
|
||||
> 基线对比:首次运行,基线期为2026年4月-6月
|
||||
|
||||
---
|
||||
|
||||
## 1. 政策清单
|
||||
|
||||
| # | 政策名称 | 发布机构 | 日期 | 优先级 | 原文链接 |
|
||||
|---|----------|----------|------|--------|----------|
|
||||
| 1 | 群众身边水体保护治理行动方案 | 国办转发生态环境部等 | 2026-07-14 | P1 | [原文](https://www.gov.cn/zhengce/content/202607/content_7075364.htm) |
|
||||
| 2 | 扩大消费"十五五"规划 | 国务院批复 | 2026-07-13 | P1 | [原文](https://www.gov.cn/zhengce/content/202607/content_7075216.htm) |
|
||||
| 3 | 国民健康"十五五"规划 | 国务院印发 | 2026-07-13 | P1 | [原文](https://www.gov.cn/zhengce/content/202607/content_7075213.htm) |
|
||||
| 4 | 中医药振兴发展"十五五"规划 | 国务院批复 | 2026-07-10 | P2 | [原文](https://www.gov.cn/zhengce/content/202607/content_7074930.htm) |
|
||||
| 5 | "十五五"碳达峰行动方案 | 国务院印发 | 2026-07-09 | P0 | [原文](https://www.gov.cn/zhengce/content/202607/content_7074826.htm) |
|
||||
| 6 | 招标投标领域信用管理暂行办法 | 发改委第44号令 | 2026-07-16 | P3 | [原文](https://www.ndrc.gov.cn/zcfb/fzggwl/202607/t20260716_1406530.html) |
|
||||
| 7 | 2026年上半年货币政策执行执行情况发布会 | 中国人民银行 | 2026-07-15 | P1 | [实录](https://www.pbc.gov.cn/goutongjiaoliu/113456/113469/2026071518015458230/index.html) |
|
||||
| 8 | 海水淡化产业发展行动方案 | 发改委等联合印发 | 2026-07-16 | P3 | ⚠️ 原文不可得(链接失效),基于列表页标题 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 四步法逐条解读
|
||||
|
||||
### 政策 1: 群众身边水体保护治理行动方案
|
||||
|
||||
**原文摘要:**
|
||||
> 群众身边水体是指与群众居住区域紧密相邻、生产生活密切相关的江河二级及以下支流和坑塘沟渠等。到2030年,基本完成省级及以上工业园区水污染排查整治任务,基本消除县乡黑臭水体,基本控制重点区域畜禽养殖污染对水体的直接影响,群众身边水体基本实现无异色、无异味、无异物,推动水生态环境全面改善。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 解决水污染防治深层次问题,将治理重点向县城、乡村延伸,2030年前基本消除县乡黑臭水体
|
||||
- **具体措施:** 五大攻坚行动——工业园区水污染整治、县乡黑臭水体治理、畜禽粪污综合治理、乡村河湖库管护、小微水体排查整治;强化工业企业污染防控、城镇生活污水收集处理、养殖业清洁生产、入河污染物管控
|
||||
- **措辞强度:** 「加强」「加快」「严厉打击」— 中高强度,强化执行导向
|
||||
- **量化指标:** 2030年完成工业园区排查整治、消除县乡黑臭水体(无具体数字指标,以"基本完成"为主)
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **新增表述:** 将环保治理从"大江大河"下沉到"群众身边水体"(二级支流、坑塘沟渠),这是环境治理颗粒度的显著下沉
|
||||
- **措辞变化:** 对比"十四五"水污染防治规划,新增"美丽水细胞"概念,强调"小而美"治理样板
|
||||
- **是否首次提出:** "群众身边水体"概念首次系统化提出,为「新方向」信号
|
||||
|
||||
**4.3 政策类型:** 产业政策(环保基础设施)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→加码 水环境治理,从"十三五"水污染防治→"十四五"深入打好碧水保卫战→本期向乡村小微延伸
|
||||
- 方向一致性: 一致;环保治理持续下沉,从末端治理转向源头系统性治理
|
||||
|
||||
---
|
||||
|
||||
### 政策 2: 扩大消费"十五五"规划
|
||||
|
||||
**原文摘要:**
|
||||
> 到2030年,消费市场总体规模持续扩大,社会消费品零售总额达到60万亿元左右。消费结构更加优化,居民人均服务性消费支出占比稳步提高。消费能力不断提高,居民收入增长和经济增长同步。深入实施提振消费专项行动,扩大服务消费,升级商品消费,丰富业态场景,提升消费能力,优化消费环境。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 完善扩大居民消费长效机制,发挥消费对经济发展的基础性作用,社零总额达60万亿
|
||||
- **具体措施(八大方向):** 完善生活服务消费、扩大养老消费、支持托育消费、发展文旅消费、促进健康消费、鼓励体育消费、提升教育培训消费、促进大宗耐用商品消费(住房、汽车、家居家电智能化升级)、推动技术应用和产品创新、加强自主品牌建设、发展数字消费、推广绿色消费、推进首发经济、培育体验式消费、扩大入境消费、促进高质量充分就业、多渠道促进居民增收
|
||||
- **措辞强度:** "深入实施""加快健全""扩大""升级""丰富"— 全面铺开式措辞,覆盖面极广
|
||||
- **量化指标:** 2030年社零总额60万亿元;居民收入增长和经济增长同步
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **新增表述:** ①"人工智能+消费"首次写入五年规划政策文本;②"数字消费提升行动"单列;③"千厂千面"改造计划(柔性制造);④"首发经济领军企业"培育;⑤"购在中国"品牌打造(入境消费系统化)
|
||||
- **措辞变化:** 从"促消费"升级为"扩消费长效机制",从短期刺激转向制度性建设
|
||||
- **是否首次提出:** 多项首次——"人工智能+消费"、"千厂千面"、"首发经济"均为新方向信号
|
||||
|
||||
**4.3 政策类型:** 财政+产业政策复合(消费驱动型)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→加码 中央经济工作会议"着力扩大国内需求"部署,与国办3号文"以旧换新加力扩围"一致
|
||||
- 方向一致性: 一致;消费作为战略基点的定位进一步强化,从短期刺激升级为长效机制
|
||||
|
||||
---
|
||||
|
||||
### 政策 3: 国民健康"十五五"规划
|
||||
|
||||
**原文摘要:**
|
||||
> 到2030年,人均预期寿命达到80岁,主要健康指标进入高收入国家行列,为2035年建成健康中国打下坚实基础。以数智化转型、中西医协同为牵引,推动医疗卫生发展方式更加注重以健康为中心。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 实施健康优先发展战略,2030年人均预期寿命达80岁,健康中国建设取得决定性进展
|
||||
- **具体措施:** 优化全人群全方位全周期健康服务(健康促进、疾病预防、全生命周期服务);提升医疗服务质量;筑牢公共卫生安全屏障(传染病防控、急救血液保障、食药安全);完善优质高效整合型医疗卫生服务体系;推进数智化转型
|
||||
- **措辞强度:** "加快健全""全面提升""加快推进"— 中高强度,执行导向明确
|
||||
- **量化指标:** 人均预期寿命80岁;15岁以上人群吸烟率降低到20%
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **新增表述:** ①"数智化转型"首次作为核心牵引写入健康规划;②"AI+"在医疗领域的应用信号明确;③"中西医协同"升格为战略牵引
|
||||
- **措辞变化:** 从"治病为中心"到"以健康为中心"的政策范式转变更加明确
|
||||
- **是否首次提出:** "数智化转型"作为战略牵引为首次
|
||||
|
||||
**4.3 政策类型:** 分配政策(医疗卫生)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→加码 健康中国2030规划纲要的延续
|
||||
- 方向一致性: 一致;健康优先发展战略持续强化
|
||||
|
||||
---
|
||||
|
||||
### 政策 4: 中医药振兴发展"十五五"规划
|
||||
|
||||
**原文摘要:**
|
||||
> 坚持中西医并重,坚持守正创新,遵循中医药规律和特点,完善中医药传承创新发展机制,加快推进中医药现代化,推动中医药走向世界,为推动"十五五"时期健康中国建设取得决定性进展提供有力支撑。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 推动中医药传承创新发展,推进中医药现代化,推动中医药走向世界
|
||||
- **具体措施:** 原文不可得(国务院批复件,具体规划未公开),基于批复文本判断——完善传承创新机制、推进现代化、走向世界
|
||||
- **措辞强度:** "加快推进""推动走向世界"— 加速推进
|
||||
- **量化指标:** 原文不可得
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **新增表述:** 无新方向信号(延续既有政策框架)
|
||||
- **措辞变化:** "十五五"时期继续沿用"中西医并重"政策基调
|
||||
- **是否首次提出:** 否
|
||||
|
||||
**4.3 政策类型:** 产业政策(医疗健康)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续 过往中医药发展战略的延续
|
||||
- 方向一致性: 一致
|
||||
|
||||
---
|
||||
|
||||
### 政策 5: "十五五"碳达峰行动方案
|
||||
|
||||
**原文摘要:**
|
||||
> 到2030年,单位GDP二氧化碳排放比2025年降低17%,非化石能源消费占比达到25%,确保如期实现碳达峰目标。以能源绿色低碳转型为关键,深入推进产业绿色化、低碳化。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 2030年如期碳达峰,单位GDP碳排放降17%,非化石能源占比25%
|
||||
- **具体措施(涵盖面极广):** ①大力推进非化石能源开发(风光水核,28亿千瓦风电太阳能、1.1亿千瓦核电)②提升电力系统新能源消纳能力(抽水蓄能1.6亿千瓦、新型储能3亿千瓦)③推进煤炭消费清洁替代④产业绿色化转型⑤传统产业节能降碳改造⑥建设100个国家级零碳园区、500个零碳工厂⑦算力设施绿色转型⑧循环经济⑨建筑/交通/公共机构节能降碳⑩生态系统碳汇⑪法律法规标准⑫碳排放统计核算⑬科技支撑⑭设立国家低碳转型基金⑮完善价格政策⑯全国碳市场扩容(覆盖石化、化工)⑰压实地方责任
|
||||
- **措辞强度:** "大力推进""更大力度""全面实施"— 极高强度,举国体制力度
|
||||
- **量化指标:** 极其丰富——详见原文,涵盖装机、能效、减排、固碳等全维度数字
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **新增表述:** ①"零碳园区"100个+「零碳工厂」500个——首次量化目标;②"算力设施绿色低碳转型"——首次单列为碳达峰重点领域;③"国家低碳转型基金"——首次设立;④"绿电直连"作为关键模式推广;⑤碳市场扩容到石化、化工(首次明确扩容时间表)
|
||||
- **措辞变化:** 从"双碳"顶层设计进入量化攻坚期,措施颗粒度从方向性→工程性
|
||||
- **是否首次提出:** 多项首次——零碳园区/工厂、算力设施绿色转型、国家低碳转型基金均为「新方向」
|
||||
|
||||
**4.3 政策类型:** 产业政策+财政政策+货币政策复合
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→全面加码 双碳1+N政策体系的"十五五"攻坚版
|
||||
- 方向一致性: 高度一致;绿色转型从方向宣告进入量化执行阶段
|
||||
|
||||
---
|
||||
|
||||
### 政策 6: 招标投标领域信用管理暂行办法
|
||||
|
||||
**原文摘要:**
|
||||
(原文不可得,基于发改委第44号令标题及列表页信息)
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 建立招标投标领域信用管理体系
|
||||
- **具体措施:** 原文不可得
|
||||
- **措辞强度:** 原文不可得
|
||||
- **量化指标:** 原文不可得
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **是否首次提出:** 招标投标信用管理为首次立法级规章
|
||||
|
||||
**4.3 政策类型:** 产业政策(市场制度)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 方向一致性: 一致;市场化改革方向中的信用基础设施建设
|
||||
|
||||
---
|
||||
|
||||
### 政策 7: 2026年上半年货币政策执行情况发布会
|
||||
|
||||
**原文摘要:**
|
||||
> 继续实施适度宽松的货币政策,为经济平稳增长、高质量发展和金融市场稳定运行创造适宜的货币金融环境。M2同比增长8.0%,社会融资规模同比增长7.4%。新发放企业贷款加权平均利率约3.0%。结构性货币政策工具覆盖金融"五篇大文章"。设立了1万亿元民营企业再贷款,余额已超7600亿元。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 实施适度宽松货币政策,保持流动性充裕,降低社会融资成本,支持实体经济
|
||||
- **具体措施:** ①综合运用逆回购、MLF、买卖国债等工具②完善短端利率调控机制(临时正逆回购区间收窄至50BP、新增隔夜逆回购品种)③结构性工具扩围(1万亿民企再贷款、1.2万亿科创再贷款)④汇率稳定(人民币对一篮子货币升值4.7%)⑤债券市场"科技板"建设
|
||||
- **措辞强度:** "继续实施适度宽松""加大逆周期和跨周期调节力度"— 宽松信号明确
|
||||
- **量化指标:** M2同比8.0%、社融同比7.4%、企业贷款利率3.0%、住房贷款利率3.1%、民企再贷款余额7600亿+、科创贷款1.5万亿
|
||||
|
||||
**4.2 找新增(基线对比):**
|
||||
- **新增表述:** ①货币政策框架从数量型向价格型转型明确宣布;②"_SHORT端利率调控"具体措施落地(50BP对称区间、隔夜逆回购);③"金融五篇大文章"结构化表述(科技金融、绿色金融、普惠金融、养老金融、数字金融)
|
||||
- **措辞变化:** 邹澜副行长明确"某次操作量不宜判断政策取向,短端市场利率是更适宜观测指标"— 标志着货币政策框架向价格型正式转型
|
||||
- **是否首次提出:** 货币政策框架转型具体路径首次明确
|
||||
|
||||
**4.3 政策类型:** 货币政策
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续 中央经济工作会议精神,但框架转型加速
|
||||
- 方向一致性: 一致;"适度宽松"方向未变,但操作框架出现结构性转型信号
|
||||
|
||||
---
|
||||
|
||||
### 政策 8: 海水淡化产业发展行动方案
|
||||
|
||||
**原文摘要:**
|
||||
> ⚠️ 原文不可得(链接失效),本条基于发改委列表页标题纳入口径。
|
||||
|
||||
**4.1 读原文:**
|
||||
- 原文不可得
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 方向一致性: 与"群众身边水体保护治理"同属水资源管理链条,方向一致
|
||||
|
||||
---
|
||||
|
||||
## 3. 连续性总览
|
||||
|
||||
```
|
||||
[政策7: 适度宽松+货币政策框架转型] (货币)
|
||||
│ ↗ [消费] 政策2: 宽松货币支撑消费扩大
|
||||
│ ↗ [绿色] 政策5: 绿色金融+低碳转型基金
|
||||
↓ 延续
|
||||
[政策5: 零碳园区100个+零碳工厂500个+低碳转型基金] (产业·新能源)
|
||||
│ ↗ [环保] 政策1: 同属绿色转型链条
|
||||
│ ↗ [算力] 政策5第(八)条: 算力设施绿色化
|
||||
↓ 一致
|
||||
[政策2: 社零60万亿+人工智能+消费+千厂千面] (财政·消费)
|
||||
│ ↗ [医疗] 政策3: 同属民生消费扩张
|
||||
│ ↗ [文旅/体育/养老] 政策2: 服务消费全链条
|
||||
↓ 一致
|
||||
[政策1: 群众身边水体治理+乡村延伸] (产业·环保)
|
||||
│ ↗ [健康] 政策3: 同属"以健康为中心"
|
||||
↓ 一致
|
||||
[政策3: 人均预期寿命80岁+数智化转型] (分配·医疗)
|
||||
│ ↗ [中医药] 政策4: 中西医协同
|
||||
↓ 一致
|
||||
[政策4: 中医药守正创新+走向世界] (产业·医疗)
|
||||
```
|
||||
|
||||
**方向是否恒定:** 是——「宽松货币 + 扩大内需 + 绿色转型 + 健康中国」四维主线高度一致
|
||||
|
||||
**转变信号:** 货币政策框架从数量型向价格型转型加速(邹澜发布会明示),可能影响未来流动性投放方式
|
||||
|
||||
**跨赛道关联:**
|
||||
- 政策5 ←→ 政策1 同属 **绿色转型** 链条(零碳园区↔水环境治理)
|
||||
- 政策2 ←→ 政策3 同属 **扩大内需** 链条(消费扩张↔健康消费)
|
||||
- 政策7 → 政策2/5 货币宽松支撑消费和绿色投资
|
||||
|
||||
---
|
||||
|
||||
## 4. 投资方向判断
|
||||
|
||||
### 大方向(市场整体)
|
||||
|
||||
- **判断:** 流动性宽松+政策密集落地,A股结构性机会明确,市场重心从预期博弈转向政策驱动的基本面交易
|
||||
- **依据:** 政策7明确"适度宽松货币政策"+政策2"社零60万亿"+政策5"低碳转型基金"——财政+货币+产业三宽共振
|
||||
|
||||
### 中方向(赛道选择)
|
||||
|
||||
#### 看好的赛道
|
||||
|
||||
| 赛道 | 核心逻辑 | 依据 |
|
||||
|------|----------|------|
|
||||
| **新能源+储能** | 碳达峰量化目标明确,100个零碳园区、3亿千瓦新型储能等硬指标驱动订单释放 | 政策5第(一)(二)(七)(八)条 |
|
||||
| **环保水务** | 水体治理下沉到乡村小微,治理颗粒度细化带来增量市场 | 政策1全文 |
|
||||
| **消费(国货品牌+服务消费)** | 社零60万亿目标+品牌培育+入境消费+银发经济,消费是"十五五"战略基点 | 政策2第(十)(十四)(十六)条 |
|
||||
| **医疗健康(数智化)** | 人均寿命80岁目标+数智化转型牵引+AI医疗应用 | 政策3全文 |
|
||||
| **汽车(含新能源车智能化)** | 汽车消费全链条创新+智能化升级+新能源重卡 | 政策2第(八)条+政策5第(十一)条 |
|
||||
| **AI+消费(新方向)** | "人工智能+消费"首次写入五年规划政策文本,数字消费提升 | 政策2第(十二)条 |
|
||||
|
||||
#### 看空的赛道
|
||||
|
||||
| 赛道 | 核心逻辑 | 依据 |
|
||||
|------|----------|------|
|
||||
| **传统煤电** | 合理控制煤电装机规模、推动向支撑性调节性转型、淘汰不达标机组 | 政策5第(三)条 |
|
||||
| **高碳"两高"项目** | 碳排放等量或减量置换要求、从源头把关 | 政策5第(五)条 |
|
||||
| **房地产(传统开发)** | 政策2仅提保障性住房和改善性需求,未释放全面放松信号;信贷结构显示"不含房地产的服务业"贷款增速9.2% | 政策7闫先东发言 |
|
||||
|
||||
### 小方向(赛道内部)
|
||||
|
||||
- **新能源产业链:** 重点关注——新型储能(3亿千瓦目标)、抽水蓄能(1.6亿千瓦)、核电(1.1亿千瓦)、绿电直连模式、风光氢氨醇一体化基地。(推测,非原文)分布式光伏和海上风电可能获得额外政策倾斜
|
||||
- **环保水务:** 关注——县乡黑臭水体治理工程公司、工业园区水处理设施、水质监测设备、农村分散式污水处理。新方向"美丽水细胞"建设可能孕育新商业模式
|
||||
- **消费:** 关注——国货品牌培育("中国消费名品方阵")、银发经济(养老服务)、AI+消费(智能终端、智能家居全屋智能)、入境消费(离境退税便利化)。柔性制造("千厂千面")改造带动的智能制造需求
|
||||
- **医药:** 关注——AI医疗数智化转型、康复医院/护理院建设、健康管理新业态、中医药龙头企业。(推测,非原文)创新药和医疗器械受益于"面向人民生命健康的教育科技人才一体发展"
|
||||
- **货币政策受益:** 宽松环境下关注银行负债端成本改善、债券市场"科技板"相关金融产品、人民币升值受益的航空和进口板块
|
||||
|
||||
**风险提示:**
|
||||
- 美联储下半年若转向宽松不及预期(欧央行已加息25BP),可能制约央行宽松空间
|
||||
- "供强需弱"格局未根本改变(PBC Q2例会原文),消费复苏力度待观察
|
||||
- 碳达峰部分目标(28亿千瓦风电太阳能)的巨大规模需关注电网消纳能力瓶颈
|
||||
|
||||
---
|
||||
|
||||
## 5. 关键词
|
||||
|
||||
`适度宽松` `碳达峰` `零碳园区` `扩大消费` `人工智能+消费` `数智化转型` `货币政策框架转型` `水体治理` `低碳转型基金` `国货品牌`
|
||||
|
||||
---
|
||||
|
||||
## 6. 发布前自检
|
||||
|
||||
- [x] **原文可追溯:** 6条有完整原文链接,2条(政策4为国务院批复件、政策8链接失效)已标注
|
||||
- [x] **四步法齐全:** 6条完整四步分析,2条已标注原文不可得
|
||||
- [x] **基线对比完成:** 首次运行已执行3个月基线扫描(PBC Q2例会、碳达峰政策延续性)
|
||||
- [x] **方向判断有依据:** 每个投资判断指向具体政策编号
|
||||
- [x] **无臆测:** 推测部分已标注「(推测,非原文)」
|
||||
- [x] **优先级标注:** 清单中已标注P0-P3
|
||||
- [x] **降级标注:** 政策4、6、8已添加⚠️降级标注
|
||||
|
||||
---
|
||||
|
||||
## 附:基线摘要(2026年4月-6月)
|
||||
|
||||
| 基线核心政策 | 方向 | 关键措辞 |
|
||||
|-------------|------|---------|
|
||||
| PBC Q2货币政策委员会例会(7/4) | 货币宽松+价格型框架转型 | "适度宽松""供强需弱""加大逆周期调节" |
|
||||
| "十五五"规划纲要(3月两会) | 扩大内需+高质量发展 | "战略基点""发展新质生产力" |
|
||||
| 国办促消费政策(国办发3号) | 以旧换新加力扩围 | "提振消费专项行动" |
|
||||
| 双碳"1+N"政策体系延续 | 绿色转型 | "能源革命""双碳目标" |
|
||||
|
||||
**本期与基线的核心变化:** 从框架宣示进入量化落地期——社零60万亿、零碳园区100个、新型储能3亿千瓦等硬目标密集出台,政策力度超预期。
|
||||
@@ -0,0 +1,255 @@
|
||||
# 政策雷达分析报告 — 2026-07-22
|
||||
|
||||
> 分析范围:2026年7月21日-22日全部重要政策(上一期为7月10-21日)
|
||||
> 政策抓取数量:5 条
|
||||
> 基线对比:2026-07-21期报告(policy-analysis-20260721.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. 政策清单
|
||||
|
||||
| # | 政策名称 | 发布机构 | 日期 | 优先级 | 原文链接 |
|
||||
|---|----------|----------|------|--------|----------|
|
||||
| 1 | 中办国办《关于完善自然资源资产管理制度体系的意见》 | 中共中央办公厅、国务院办公厅 | 2026-07-14 | P0 | [国新办发布会解读](https://www.gov.cn/zhengce/202607/content_7075501.htm) |
|
||||
| 2 | 习近平出席2026世界人工智能大会开幕式并发表主旨讲话 | 国家主席 | 2026-07-17 | P0 | [原文](https://www.gov.cn/yaowen/liebiao/202607/content_7075872.htm) |
|
||||
| 3 | 旅游强国建设"十五五"规划 | 国务院批复 | 2026-07-13批复 | P1 | [解读](https://www.gov.cn/zhengce/202607/content_7075507.htm) |
|
||||
| 4 | 国务院办公厅关于加强监管防范风险促进私募投资基金高质量发展的指导意见 | 国办函〔2026〕54号 | 2026-07-20 | P1 | [原文](https://www.csrc.gov.cn/sichuan/c101113/c7646262/content.shtml) |
|
||||
| 5 | 证监会召开上市公司、行业机构、专家学者系列座谈会 | 中国证监会 | 2026-07-21 | P2 | [原文](https://www.csrc.gov.cn/csrc/c100028/c7646684/content.shtml) |
|
||||
|
||||
---
|
||||
|
||||
## 2. 四步法逐条解读
|
||||
|
||||
### 政策 1: 中办国办《关于完善自然资源资产管理制度体系的意见》
|
||||
|
||||
**原文摘要:**
|
||||
> 7月14日,国务院新闻办公室举行新闻发布会,自然资源部副部长张文彤等介绍《意见》有关情况。《意见》是自然资源资产管理领域的纲领性文件,构建了统一履行全民所有自然资源资产所有者职责的"四梁八柱"。到2030年,自然资源资产管理制度体系更加健全,履职主体更加明确、资产家底更加清晰、整体保护更加有力、资产配置更加高效、考核监督更加完善;到2035年,系统完备的自然资源资产管理制度体系全面建立。
|
||||
>
|
||||
> 《意见》围绕"有什么—值多少—由谁管—怎么管护—如何配置—收益实现—如何监督—如何考核"的完整管理链条,从5个方面部署重点改革任务:①健全自然资源资产清查统计核算制度;②完善权利体系和统一确权登记(推动设立国有农用地使用权、探索单独设立深层地下空间建设用地使用权);③构建自然资源资产配置新模式(从单一资源配置向多种类资源组合配置转变,全面推进矿业权竞争性出让、提高海域使用权市场化配置比例、培育用水权交易市场);④推进山水林田湖草沙一体化保护修复;⑤建立全民所有自然资源资产收益管理制度和考核评价机制。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 建立系统完备的自然资源资产管理制度体系,统一履行全民所有自然资源资产所有者职责,到2035年全面建立
|
||||
- **具体措施:** 五大改革任务链:清查核算→确权登记→资产配置→保护修复→监督考核。核心创新是建立"四梁八柱"管理体系,推动多资源种类组合配置
|
||||
- **措辞强度:** "全面建立""系统完备""坚决守住""充分发挥"— 高强度、系统性制度构建
|
||||
- **量化指标:** 森林覆盖率25.09%、森林蓄积量209.88亿立方米(现状家底);到2030年制度体系更加健全、到2035年全面建立
|
||||
|
||||
**4.2 找新增(vs 上期):**
|
||||
- **新增表述:** ①"四梁八柱"概念首次用于自然资源资产管理领域,定位为"纲领性文件";②"多种类自然资源资产组合配置"——从单一资源配置跨到多资源组合,这是产权制度的重大突破;③"国有农用地使用权"和"深层地下空间建设用地使用权"首次系统化提出;④"清空家底"+"交出明白账"的政治表述,体现资源资产化改革方向
|
||||
- **措辞变化:** 较"十三五""十四五"自然资源管理表述,从"分散管理"升级为"统一行使所有者职责",制度集成度大幅提升
|
||||
- **是否首次提出:** 是——这是首份专门针对自然资源资产管理制度体系的顶层设计文件,为「新方向」
|
||||
|
||||
**4.3 政策类型:** 产业政策+分配政策复合(资源产权制度改革)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→加码 自然资源统一确权登记改革→国家公园体制→本次系统集成
|
||||
- 方向一致性: 一致;生态文明制度体系从"建框架"进入"成体系"阶段
|
||||
|
||||
---
|
||||
|
||||
### 政策 2: 习近平出席2026世界人工智能大会开幕式主旨讲话
|
||||
|
||||
**原文摘要:**
|
||||
> 7月17日上午,国家主席习近平在上海出席2026世界人工智能大会暨人工智能全球治理高级别会议开幕式,发表题为《携手构建公正合理的全球人工智能治理体系》的主旨讲话。
|
||||
>
|
||||
> 习近平指出,人工智能技术创新进入前所未有的活跃期。中方认为,各国应当秉持以人为本、向上向善理念,让人工智能成为促进共同繁荣、维护共同安全的重要动力源。提出4点意见:①坚持开放共赢,驱动创新发展——鼓励开源开放,让人工智能赋能千行百业;②强化风险意识,确保安全可控——共同反对泛化国家安全概念;③鼓励包容并蓄,促进文明互鉴;④倡导和衷共济,完善全球治理——早日形成具有广泛共识的全球治理框架。
|
||||
>
|
||||
> 习近平强调,"十五五"规划为未来5年中国经济社会发展擘画蓝图。中国智能经济核心产业规模已超过万亿元人民币。中国将面向发展中国家提供5000个人工智能专题研修培训名额;面向东盟、阿盟、非盟、上合组织等建设国际人工智能应用合作中心;推动气象智能预警方案"妈祖"在30个国家落地应用。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 构建公正合理的全球人工智能治理体系,推动人工智能健康发展造福人类
|
||||
- **具体措施:** 四大方向:开放合作、安全可控、包容互鉴、全球治理。具体承诺:5000个培训名额、区域性AI应用合作中心、"妈祖"气象预警30国落地
|
||||
- **措辞强度:** "携手构建""早日形成""坚决反对"— 高层定调、开放包容但底线明确
|
||||
- **量化指标:** 中国智能经济核心产业规模超万亿人民币;5000个培训名额;30个国家落地"妈祖"
|
||||
|
||||
**4.2 找新增(vs 上期):**
|
||||
- **新增表述:** ①"世界人工智能合作组织在上海应运而生"——首个全球性AI治理组织落地中国,这是AI治理国际化的里程碑事件;②"反对在AI领域泛化国家安全概念"——明确反对制裁和技术封锁,矛头指向美方出口管制;③"智能经济核心产业规模超万亿"首次官方确认;④"妈祖"气象预警方案30国落地——中国AI公共产品的具体输出计划
|
||||
- **措辞变化:** 从"双碳"大会到"AI大会"——习近平亲自出席并发表主旨讲话,AI被提升至与"双碳"同等重要的国家战略层级
|
||||
- **是否首次提出:** 多项首次——世界AI合作组织、5000个培训名额、"妈祖"出海均为「新方向」
|
||||
|
||||
**4.3 政策类型:** 产业政策(AI战略)+外交政策
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→升级 "十五五"规划AI部署→本期提升至全球治理高度
|
||||
- 方向一致性: 高度一致;AI作为新质生产力的核心地位进一步确认,从国内战略扩展为全球治理框架
|
||||
|
||||
---
|
||||
|
||||
### 政策 3: 旅游强国建设"十五五"规划
|
||||
|
||||
**原文摘要:**
|
||||
> 日前,国务院批复同意《旅游强国建设"十五五"规划》,提到许多旅游消费新举措:①农事体验、森林康养、休闲露营等新业态;②工业遗产展示与工业旅游发展;③体育赛事+观赛游、户外运动产业;④精品自驾旅游公路、低空旅游活动;⑤冰雪旅游度假地建设(崇礼、北大湖、亚布力、阿勒泰),从单季运营向四季运营拓展;⑥海洋旅游带、邮轮游艇旅游,推进大连、天津、青岛等邮轮港口建设;⑦城市漫步、音乐节、数智体验等年轻人消费;⑧研学旅游规范化发展。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 建设旅游强国,推动旅游消费全业态升级,满足多元化消费需求
|
||||
- **具体措施:** 八大方向全面覆盖:农业旅游、工业旅游、体育旅游、自驾旅游、冰雪旅游、海洋旅游、城市文旅、研学旅游
|
||||
- **措辞强度:** "因地制宜""积极发展""支持鼓励"— 鼓励性措辞为主,非强制性
|
||||
- **量化指标:** 未公布具体量化目标
|
||||
|
||||
**4.2 找新增(vs 上期):**
|
||||
- **新增表述:** ①"旅游强国"建设首次升格为"十五五"专项规划(此前旅游政策包含在消费规划中);②"低空旅游"首次写入旅游政策;③"工业遗产旅游"独立成节;④邮轮游艇从"试点"升级为"扩大消费"
|
||||
- **措辞变化:** 旅游业从消费规划的子章节升级为独立五年规划,战略定位显著提升
|
||||
- **是否首次提出:** "旅游强国十五五规划"为首次(虽扩大消费规划已在上期覆盖,但旅游强国规划是独立新文件)
|
||||
|
||||
**4.3 政策类型:** 产业政策(消费服务业)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→升级 与本期扩大消费"十五五"规划一脉相承,但旅游获独立规划地位
|
||||
- 方向一致性: 一致;消费服务从商品消费扩展到服务消费全链条
|
||||
|
||||
---
|
||||
|
||||
### 政策 4: 私募投资基金高质量发展指导意见
|
||||
|
||||
**原文摘要:**
|
||||
> 国办函〔2026〕54号,2026年7月20日发布。为做好私募基金加强监管、防范风险工作,经国务院同意提出指导意见:
|
||||
>
|
||||
> ①强化源头防控:优化登记备案规则,严控新设政府投资基金(县区原则上不得新设,确需新设的报上级政府批准),建立综合研判会商机制;②全面加强监管:推动修订证券投资基金法,制定管理人监管、信息披露、资金募集、强制托管规则,出台"对赌协议"规范;③分类监管:根据出资主体、产品类型实施"一类一策";④既管合法更管非法:合法机构从严监管、非法机构坚决取缔、非法行为严厉打击;⑤严格禁止违规借贷、"名股实债"等行为;⑥优化增量、盘活存量,扶优限劣、提质增效。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 加强监管、防范风险,促进私募基金高质量发展
|
||||
- **具体措施:** 四大支柱:源头防控(严控新设+会商机制)、全面监管(修法+规则体系)、分类监管(一类一策)、严厉打击非法
|
||||
- **措辞强度:** "坚决取缔""严厉打击""严格禁止""严控"— 强监管基调明确,措辞严厉
|
||||
- **量化指标:** 县区原则不得新设政府投资基金(行政约束量化)
|
||||
|
||||
**4.2 找新增(vs 上期):**
|
||||
- **新增表述:** ①"对赌协议"制度安排首次提出规范——这是PE/VC行业核心条款,此前监管态度模糊;②县区原则不得新设政府投资基金——直接限制地方政府GP扩张冲动;③"一类一策"分类监管概念首次提出,标志着从"一刀切"转向精细化;④"既管合法更管非法"——监管理念升级,填补监管空白
|
||||
- **措辞变化:** 从"规范发展"到"加强监管、防范风险",再到"高质量发展"——监管重心从"促发展"转向"防风险+提质"
|
||||
- **是否首次提出:** 是——国办函级别专门针对私募基金行业的综合性指导意见,多项制度安排为首次
|
||||
|
||||
**4.3 政策类型:** 产业政策(金融监管)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续→升级 2023年国九条"建立健全私募基金监管体系"→本期国办函细化落实
|
||||
- 方向一致性: 一致;资本市场"防风险、强监管"主线在私募领域的具体化
|
||||
|
||||
---
|
||||
|
||||
### 政策 5: 证监会召开上市公司、行业机构、专家学者系列座谈会
|
||||
|
||||
**原文摘要:**
|
||||
> 7月20日下午至21日,证监会党委班子成员分别召开座谈会,就促进资本市场稳定健康发展听取各方面意见建议,来自上市公司、证券基金机构和专家学者的29位代表参会。与会代表围绕:①加强资本市场基础制度建设;②落实中长期资金长周期考核机制;③提升上市公司规范运作和治理水平;④进一步规范量化交易行为;⑤加大市场违法违规惩处力度;⑥强化资本市场预期引导;⑦推动稳市机制制度化等方面提出意见建议。证监会表示将认真研究吸收,统筹防风险、强监管、促高质量发展。
|
||||
|
||||
**4.1 读原文:**
|
||||
- **政策目标:** 促进资本市场稳定健康发展,广泛听取市场主体意见
|
||||
- **具体措施:** 具体政策尚未出台,属于"听取意见"阶段。七大议题方向:基础制度建设、长期资金考核、公司治理、量化交易监管、违法惩处、预期引导、稳市机制
|
||||
- **措辞强度:** "认真研究吸收""主动回应市场关切"— 协商性措辞,非强制性
|
||||
- **量化指标:** 无
|
||||
|
||||
**4.2 找新增(vs 上期):**
|
||||
- **新增表述:** ①"量化交易行为"规范首次作为独立议题在证监会高层座谈会提出,释放强监管信号;②"稳市机制制度化"从临时措施转向制度化建设,与中央汇金"类平准基金"机制衔接;③29位代表围绕7大议题密集讨论——在新"国九条"落地两年节点,释放新一轮改革信号
|
||||
- **措辞变化:** 从新"国九条"时期的"建制度"转向"强基础+"——制度建设进入深水区
|
||||
- **是否首次提出:** 座谈会本身是常规工作,但议题设置体现新方向:量化交易监管、稳市机制制度化
|
||||
|
||||
**4.3 政策类型:** 产业政策(资本市场改革)
|
||||
|
||||
**4.4 连续性验证:**
|
||||
- 与前序政策的关系: 延续 新"国九条"+"1+N"政策体系→本期进入深化完善阶段
|
||||
- 方向一致性: 高度一致;资本市场监管持续向"制度化、规范化、常态化"演进
|
||||
|
||||
---
|
||||
|
||||
## 3. 连续性总览
|
||||
|
||||
```
|
||||
[政策2: AI全球治理+智能经济万亿+5000培训] (产业·AI·外交)
|
||||
│ ↗ [资本市场] 政策5: 资本市场改革支持AI企业上市
|
||||
│ ↗ [海洋经济] 政策3: 海洋旅游+低空旅游新消费
|
||||
↓ 延续
|
||||
[政策1: 自然资源资产"四梁八柱"+多资源组合配置] (产业·资源产权)
|
||||
│ ↗ [绿色转型] 上期政策5: 碳达峰零碳园区——同属生态文明制度体系
|
||||
│ ↗ [矿业/能源] 矿业权竞争性出让+海域市场化
|
||||
↓ 一致
|
||||
[政策4: 私募基金强监管+对赌协议规范+一类一策] (产业·金融监管)
|
||||
│ ↗ [资本市场] 政策5: 同属资本市场监管深化改革
|
||||
│ ↗ [创投] 影响PE/VC行业格局
|
||||
↓ 一致
|
||||
[政策5: 量化交易规范+稳市机制制度化] (产业·资本市场)
|
||||
│ ↗ [投资] 为长期资金入市创造制度环境
|
||||
↓ 一致
|
||||
[政策3: 旅游强国十五五规划+全业态升级] (产业·消费服务)
|
||||
```
|
||||
|
||||
**方向是否恒定:** 是——「绿色转型+AI驱动+消费扩张+资本市场监管」四维主线持续强化
|
||||
|
||||
**转变信号:**
|
||||
- 私募基金监管明显转严(国办函54号文:"县区原则不得新设政府投资基金"+"对赌协议规范"),行业格局面临重塑
|
||||
- AI从产业政策升级为全球治理议题,中国试图主导全球AI治理规则制定
|
||||
- 自然资源资产管理从"分散"到"统一"的制度改革,释放万亿级资源资产化价值
|
||||
|
||||
**跨赛道关联:**
|
||||
- 政策1 ←→ 政策3 同属 **大消费+资源资产化** 链条(自然资源资产化↔旅游消费场景拓展)
|
||||
- 政策2 ←→ 政策5 同属 **AI+资本市场** 链条(AI企业上市绿色通道↔资本市场改革深化)
|
||||
- 政策4 ←→ 政策5 同属 **资本市场监管** 链条(私募强监管↔量化交易规范)
|
||||
|
||||
---
|
||||
|
||||
## 4. 投资方向判断
|
||||
|
||||
### 大方向(市场整体)
|
||||
|
||||
- **判断:** 政策密度维持高位,制度改革红利持续释放。AI强国、旅游强国、自然资源资产化三大新主题提供结构性机会。短期关注AI大会后续产业政策落地、私募基金监管细则出台
|
||||
- **依据:** 政策2确认AI产业万亿规模+政策1"四梁八柱"产权改革+政策3旅游独立规划——制度改革从框架建设进入细分管护期
|
||||
|
||||
### 中方向(赛道选择)
|
||||
|
||||
#### 看好的赛道
|
||||
|
||||
| 赛道 | 核心逻辑 | 依据 |
|
||||
|------|----------|------|
|
||||
| **AI+智能经济** | 产业规模超万亿确认+全球治理组织落地中国+5000培训出海 | 政策2全文 |
|
||||
| **自然资源资产化** | 矿业权竞争性出让+海域市场化+用水权交易+地下空间确权——万亿级资源资产重估 | 政策1全文 |
|
||||
| **旅游消费(新业态)** | 旅游强国独立规划+低空旅游+冰雪+邮轮游艇+工业遗产 | 政策3全文 |
|
||||
| **资本市场服务** | 量化交易规范利好头部券商+稳市机制制度化+创业板改革深化 | 政策5+上期吴清演讲 |
|
||||
| **新能源/环保** | 自然资源资产化延伸——生态产品价值实现机制、碳汇交易 | 政策1+上期政策5 |
|
||||
|
||||
#### 看空的赛道
|
||||
|
||||
| 赛道 | 核心逻辑 | 依据 |
|
||||
|------|----------|------|
|
||||
| **中小私募基金/PPP** | 县区原则不得新设政府投资基金+对赌协议规范+一类一策强监管 | 政策4 |
|
||||
| **量化交易(高频)** | 证监会座谈会将"规范量化交易行为"作为独立议题,监管收紧信号明确 | 政策5 |
|
||||
| **传统资源粗放开发** | 矿业权竞争性出让+海域市场化配置——低效国企拿矿难度增加 | 政策1 |
|
||||
|
||||
### 小方向(赛道内部)
|
||||
|
||||
- **AI产业链:** 关注——AI大模型企业科创板上市第五套标准扩大+国际AI应用合作中心(东盟/一带一路);"人工智能+"与传统产业融合场景;国产算力基础设施。(推测,非原文)AI安全治理和数据要素相关企业可能受益于全球治理规则制定
|
||||
- **自然资源资产化:** 关注——矿业权市场化勘探开发企业、海域使用权开发商、水权交易平台、生态产品价值实现(碳汇交易)。(推测,非原文)自然资源资产负债表编制相关的数据服务和评估机构
|
||||
- **旅游消费:** 关注——低空旅游运营商、冰雪旅游度假地(崇礼/亚布力)、邮轮制造和运营、工业遗产改造文旅项目、森林康养基地。(推测,非原文)高速公路服务区消费新场景改造
|
||||
- **资本市场:** 关注——头部券商(量化交易规范化利好集中度提升)、ETF和指数产品(创业板指数体系优化)、长期资金入市受益的蓝筹股
|
||||
|
||||
**风险提示:**
|
||||
- 美联储政策转向节奏不确定性仍然制约全球流动性环境
|
||||
- 私募基金强监管可能引发短期行业出清阵痛,影响一级市场流动性
|
||||
- 自然资源资产化改革涉及央地利益再分配,落地节奏可能慢于预期
|
||||
- AI领域国际竞争加剧,技术封锁风险仍存(政策2中"反对泛化国家安全概念"即为回应)
|
||||
|
||||
---
|
||||
|
||||
## 5. 关键词
|
||||
|
||||
`四梁八柱` `自然资源资产化` `人工智能全球治理` `旅游强国` `对赌协议` `一类一策` `量化交易` `智能经济万亿` `矿业权竞争性出让` `低空旅游`
|
||||
|
||||
---
|
||||
|
||||
## 6. 发布前自检
|
||||
|
||||
- [x] **原文可追溯:** 政策1通过国新办发布会解读获得全文内容,政策2/4/5均有完整原文链接,政策3通过解读文章获得完整内容
|
||||
- [x] **四步法齐全:** 5条政策全部完成4.1→4.2→4.3→4.4四步分析
|
||||
- [x] **基线对比完成:** 非首次运行,本期与上一期2026-07-21报告逐条对比
|
||||
- [x] **方向判断有依据:** 每个投资判断均指向具体政策编号
|
||||
- [x] **无臆测:** 推测部分已标注「(推测,非原文)」
|
||||
- [x] **优先级标注:** 清单中已标注P0-P2
|
||||
- [x] **降级标注:** 政策1原文通过国新办发布会解读获得(非原文链接直接获取),已在链接栏注明
|
||||
|
||||
---
|
||||
|
||||
## 附:与上期(2026-07-21)核心对比
|
||||
|
||||
| 对比维度 | 上期(7/21) | 本期(7/22) | 变化判断 |
|
||||
|----------|-------------|-------------|---------|
|
||||
| **政策节奏** | 8条密集颁布期 | 5条质量型颁布 | 节奏放缓但制度层级更高 |
|
||||
| **新增赛道** | 消费/医疗/环保/碳达峰 | 自然资源资产化/AI全球治理/旅游强国 | 扩展3个新赛道 |
|
||||
| **AI定位** | "人工智能+消费"写入规划 | AI全球治理+智能经济万亿+国际组织 | 大幅升级 |
|
||||
| **监管基调** | 宽松货币+促消费 | 私募基金强监管+量化交易规范 | 金融监管明显转严 |
|
||||
| **制度层级** | 国务院规划为主 | 中办国办意见+国家主席讲话 | 政策层级显著提升 |
|
||||
| **方向总览** | 宽松货币+扩大内需+绿色转型+健康中国 | +AI强国+资源资产化+旅游强国+金融监管强化 | 主线扩展,结构性分化加大 |
|
||||
@@ -263,69 +263,36 @@ description: 政策雷达 — 从中国政府公开信息源抓取最新政策
|
||||
|
||||
## 5. 抓取工具与方法
|
||||
|
||||
### 5.1 工具选择
|
||||
### 5.1 可复用抓取工具(推荐)
|
||||
|
||||
skill 目录下提供了预构建的 Python 抓取模块 `tools/scrapers.py`,覆盖全部 11 个数据源。**优先使用这些工具,而非临时编写 curl 脚本。**
|
||||
|
||||
```python
|
||||
import sys
|
||||
sys.path.insert(0, '.claude/skills/policy-radar')
|
||||
from tools.scrapers import scrape_list, scrape_article
|
||||
|
||||
# 获取某站点的最新列表
|
||||
items = scrape_list("gov.cn") # 返回 [{title, date, url}, ...]
|
||||
items = scrape_list("pbc") # 央行货币政策/公告
|
||||
items = scrape_list("people") # 人民日报社论
|
||||
|
||||
# 抓取某篇文章正文
|
||||
article = scrape_article("gov.cn", url) # 返回 [{text}, ...]
|
||||
```
|
||||
|
||||
**支持的站点名称:** `gov.cn`, `xinhuanet`, `pbc`, `mof`, `ndrc`, `csrc`, `mofcom`, `people`, `cctv`, `ce`, `scio`
|
||||
|
||||
### 5.2 工具选择
|
||||
|
||||
| 工具 | 适用场景 | 缺点 |
|
||||
|------|----------|------|
|
||||
| **tools/scrapers.py(推荐)** | 直接调用预置抓取器,覆盖11个源 | 网站结构变更时需更新正则 |
|
||||
| WebSearch | 通用搜索,找最新政策链接 | 依赖配额,可能 403 |
|
||||
| WebFetch | 获取单个页面全文 | 依赖配额,部分站点证书问题 |
|
||||
| **curl + python3(推荐)** | 直接 HTTP 请求 + HTML 解析 | 需处理编码和动态页面 |
|
||||
| curl + python3 | 直接 HTTP 请求 + HTML 解析 | 需处理编码和动态页面 |
|
||||
|
||||
**当 WebSearch / WebFetch 不可用时,使用 curl + python3 作为降级方案(本方案已在实际运行中验证可用)。**
|
||||
|
||||
### 5.2 抓取脚本
|
||||
|
||||
#### 5.2.1 获取最新政策列表(gov.cn)
|
||||
|
||||
```bash
|
||||
curl -sL --max-time 15 "https://www.gov.cn/zhengce/" 2>/dev/null | python3 -c "
|
||||
import sys, re
|
||||
html = sys.stdin.read()
|
||||
# 提取最新政策列表
|
||||
items = re.findall(r'<li>\s*<a href=\"([^\"]+)\"[^>]*>\s*([^<]+)\s*</a>\s*<span>\s*([\d-]+)\s*</span>', html)
|
||||
for url, title, date in items:
|
||||
title = title.strip()
|
||||
if title and '2026' in date:
|
||||
print(f'{date} | {title} | {url}')
|
||||
"
|
||||
```
|
||||
|
||||
#### 5.2.2 抓取政策正文(gov.cn)
|
||||
|
||||
```bash
|
||||
curl -sL --max-time 15 "<页面URL>" 2>/dev/null | python3 -c "
|
||||
import sys, re
|
||||
html = sys.stdin.read()
|
||||
paragraphs = re.findall(r'<p[^>]*>(.*?)</p>', html, re.DOTALL)
|
||||
for p in paragraphs:
|
||||
text = re.sub(r'<[^>]+>', '', p).strip()
|
||||
if text and len(text) > 10:
|
||||
print(text)
|
||||
"
|
||||
```
|
||||
|
||||
#### 5.2.3 抓取部委动态列表(以央行为例)
|
||||
|
||||
```bash
|
||||
curl -sL --max-time 15 "https://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html" 2>/dev/null | python3 -c "
|
||||
import sys, re
|
||||
html = sys.stdin.read()
|
||||
links = re.findall(r'<a[^>]*href=\"(/goutongjiaoliu/[^\"]+)\"[^>]*>([^<]+)</a>', html)
|
||||
for href, title in links:
|
||||
title = title.strip()
|
||||
if title and len(title) > 5:
|
||||
print(f'{title} | https://www.pbc.gov.cn{href}')
|
||||
"
|
||||
```
|
||||
|
||||
#### 5.2.4 处理 404 / 页面不存在
|
||||
|
||||
gov.cn 的 `/zhengce/content/` 路径下部分文件 ID 不存在(返回"页面不存在")。判断方法:
|
||||
|
||||
```python
|
||||
if "页面不存在" in html or "您访问的页面不存在" in html:
|
||||
# 该 URL 无效,跳过
|
||||
```
|
||||
**当预置工具不可用时,使用 curl + python3 作为降级方案。**
|
||||
|
||||
### 5.3 原文获取质量与降级标注
|
||||
|
||||
@@ -355,17 +322,24 @@ if "页面不存在" in html or "您访问的页面不存在" in html:
|
||||
|
||||
## 6. 数据源 URL 速查
|
||||
|
||||
| 来源 | URL | 内容 |
|
||||
|------|-----|------|
|
||||
| 中国政府网 | https://www.gov.cn/zhengce/ | 国务院政策文件库 |
|
||||
| 国新办 | https://www.scio.gov.cn/xwfbh/ | 新闻发布会文字实录 |
|
||||
| 新华社 | https://www.xinhuanet.com/ | 受权发布 |
|
||||
| 央行 | https://www.pbc.gov.cn/goutongjiaoliu/113456/ | 货币政策 |
|
||||
| 财政部 | https://www.mof.gov.cn/zhengwuxinxi/ | 财政政策 |
|
||||
| 证监会 | https://www.csrc.gov.cn/csrc/c100028/ | 证监会公告 |
|
||||
| 发改委 | https://www.ndrc.gov.cn/xxgk/ | 产业政策 |
|
||||
| 人民日报 | http://www.people.com.cn/ | 社论 |
|
||||
| 央视新闻 | https://news.cctv.com/ | 新闻联播 |
|
||||
| 来源 | URL | 内容 | 工具名 |
|
||||
|------|-----|------|--------|
|
||||
| 中国政府网 | https://www.gov.cn/zhengce/ | 国务院政策文件库 | `gov.cn` |
|
||||
| 新华社 | https://www.news.cn/ | 受权发布/时政 | `xinhuanet` |
|
||||
| 国新办 | https://www.scio.gov.cn/xwfbh/ | 新闻发布会文字实录 | `scio` (镜像: pbc.gov.cn) |
|
||||
| 央行 | https://www.pbc.gov.cn/goutongjiaoliu/113456/ | 货币政策/公告 | `pbc` |
|
||||
| 财政部 | https://www.mof.gov.cn/zhengwuxinxi/ | 财政政策 | `mof` |
|
||||
| 发改委 | https://www.ndrc.gov.cn/xxgk/ | 产业政策/规划 | `ndrc` |
|
||||
| 证监会 | https://www.csrc.gov.cn/csrc/c100028/ | 证监会公告 | `csrc` |
|
||||
| 商务部 | https://www.mofcom.gov.cn/ | 外贸/消费政策 | `mofcom` |
|
||||
| 人民日报 | http://opinion.people.com.cn/ | 社论/评论 | `people` |
|
||||
| 央视新闻 | https://news.cctv.com/ | 新闻联播文字版 | `cctv` |
|
||||
| 经济日报 | http://www.ce.cn/ | 部委政策解读 | `ce` |
|
||||
|
||||
**注意事项:**
|
||||
- 国新办 (scio.gov.cn) 有 JS 反爬挑战,工具使用央行镜像站获取国新办发布会实录
|
||||
- 新华社内容已迁移至 www.news.cn(旧域名 xinhuanet.com 仅有历史内容)
|
||||
- 人民日报社论版使用 opinion.people.com.cn 子域名
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,632 @@
|
||||
"""
|
||||
政策雷达 - 政府网站抓取工具集
|
||||
每个函数返回标准化格式: {"title": str, "date": str, "url": str, "content": str}
|
||||
列表函数返回: [{"title": str, "date": str, "url": str}, ...]
|
||||
"""
|
||||
|
||||
import re
|
||||
import json
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
import ssl
|
||||
from html import unescape
|
||||
|
||||
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
||||
TIMEOUT = 15
|
||||
|
||||
# 忽略 SSL 证书验证(部分政府站点使用自签名证书)
|
||||
_SSL_CTX = ssl.create_default_context()
|
||||
_SSL_CTX.check_hostname = False
|
||||
_SSL_CTX.verify_mode = ssl.CERT_NONE
|
||||
|
||||
|
||||
def _fetch(url, headers=None):
|
||||
"""通用 HTTP GET,返回解码后的 HTML 文本"""
|
||||
hdrs = {"User-Agent": USER_AGENT}
|
||||
if headers:
|
||||
hdrs.update(headers)
|
||||
req = urllib.request.Request(url, headers=hdrs)
|
||||
with urllib.request.urlopen(req, timeout=TIMEOUT, context=_SSL_CTX) as resp:
|
||||
raw = resp.read()
|
||||
for enc in ("utf-8", "gbk", "gb2312"):
|
||||
try:
|
||||
return raw.decode(enc)
|
||||
except UnicodeDecodeError:
|
||||
continue
|
||||
return raw.decode("utf-8", errors="replace")
|
||||
|
||||
|
||||
def _extract_paragraphs(html):
|
||||
"""从 HTML 中提取正文段落(通用)"""
|
||||
paragraphs = re.findall(r"<p[^>]*>(.*?)</p>", html, re.DOTALL)
|
||||
result = []
|
||||
for p in paragraphs:
|
||||
text = re.sub(r"<[^>]+>", "", p).strip()
|
||||
text = unescape(text)
|
||||
if text and len(text) > 10:
|
||||
result.append(text)
|
||||
return result
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 优先级 1: 中央政府门户
|
||||
# ============================================================
|
||||
|
||||
def gov_search(keyword, page=1):
|
||||
"""
|
||||
中国政府网 - 搜索 API(可搜索新闻发布会等)
|
||||
URL: https://sousuo.www.gov.cn/search-gov/data?t=zhengcelibrary&q=...
|
||||
返回 JSON,包含 title/url/summary
|
||||
注意: 索引有 1-2 周延迟,最新内容可能尚未收录
|
||||
"""
|
||||
import urllib.parse
|
||||
q = urllib.parse.quote(keyword)
|
||||
api_url = (
|
||||
f"https://sousuo.www.gov.cn/search-gov/data?t=zhengcelibrary"
|
||||
f"&q={q}&p={page}&n=20&timetype=timeqb&mintime=&maxtime="
|
||||
)
|
||||
html = _fetch(api_url)
|
||||
try:
|
||||
data = json.loads(html)
|
||||
except json.JSONDecodeError:
|
||||
return []
|
||||
results = []
|
||||
search_result = data.get("searchVO", {}).get("catMap", {}).get("zhengcelibrary", {})
|
||||
items = search_result.get("listVO", []) if isinstance(search_result, dict) else []
|
||||
for item in items:
|
||||
title = re.sub(r"<[^>]+>", "", item.get("title", "")).strip()
|
||||
url = item.get("url", "")
|
||||
date = item.get("pubtime", "")[:10] if item.get("pubtime") else ""
|
||||
if title and url:
|
||||
results.append({"title": title, "date": date, "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def gov_zhengce_list():
|
||||
"""
|
||||
中国政府网 - 国务院政策文件库
|
||||
URL: https://www.gov.cn/zhengce/
|
||||
结构: 服务端渲染,<li><a href="...">标题</a><span>日期</span></li>
|
||||
"""
|
||||
html = _fetch("https://www.gov.cn/zhengce/")
|
||||
items = re.findall(
|
||||
r'<li>\s*<a href="([^"]+)"[^>]*>\s*([^<]+)\s*</a>\s*<span>\s*([\d-]+)\s*</span>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
for url, title, date in items:
|
||||
title = title.strip()
|
||||
if not title:
|
||||
continue
|
||||
if url.startswith("./"):
|
||||
url = "https://www.gov.cn/zhengce/" + url[2:]
|
||||
results.append({"title": title, "date": date, "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def gov_article(url):
|
||||
"""
|
||||
中国政府网 - 政策文章正文
|
||||
正文在 <div class="pages_content"> 内的 <p> 标签中
|
||||
"""
|
||||
html = _fetch(url)
|
||||
# 提取标题
|
||||
title_match = re.search(r'<title>([^<]+)</title>', html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
# 提取发布日期
|
||||
date_match = re.search(r"发布时间[::]\s*([\d年\-./]+)", html)
|
||||
date = date_match.group(1).strip() if date_match else ""
|
||||
# 提取正文
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": date,
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def scio_press_list():
|
||||
"""
|
||||
国新办 - 新闻发布会文字实录
|
||||
注意: scio.gov.cn 有反爬保护,此处使用 PBC 站点作为镜像
|
||||
PBC 的 "国新办举行新闻发布会" 系列完整保留了国新办原文
|
||||
URL: https://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html
|
||||
"""
|
||||
html = _fetch(
|
||||
"https://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html"
|
||||
)
|
||||
items = re.findall(
|
||||
r'<a[^>]*href="(/goutongjiaoliu/[^"]+)"[^>]*>([^<]{10,})</a>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
seen = set()
|
||||
for href, title in items:
|
||||
title = title.strip()
|
||||
if title and href not in seen and "国新办" in title:
|
||||
seen.add(href)
|
||||
results.append(
|
||||
{
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": "https://www.pbc.gov.cn" + href,
|
||||
}
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def xinhuanet_list():
|
||||
"""
|
||||
新华社 - 受权发布/时政
|
||||
注意: 使用 www.news.cn(新域名),旧 xinhuanet.com 只有 2021 年旧数据
|
||||
URL: https://www.news.cn/
|
||||
结构: 服务端渲染,标题在 <div class="tit"><a href="URL">标题</a></div>
|
||||
文章链接格式: /{channel}/{YYYYMMDD}/{32-hex}/c.html
|
||||
"""
|
||||
html = _fetch("https://www.news.cn/")
|
||||
pattern = r'<div class="tit"[^>]*><a[^>]*href=[\'"](https?://www\.news\.cn/[^"\']+/20\d{6}/[a-f0-9]{32}/c\.html)[\'"][^>]*>([^<]+)</a>'
|
||||
items = re.findall(pattern, html)
|
||||
results = []
|
||||
seen = set()
|
||||
for url, title in items:
|
||||
title = title.strip()
|
||||
if title and url not in seen:
|
||||
seen.add(url)
|
||||
date_match = re.search(r"/(20\d{6})/", url)
|
||||
date = ""
|
||||
if date_match:
|
||||
d = date_match.group(1)
|
||||
date = f"{d[:4]}-{d[4:6]}-{d[6:8]}"
|
||||
results.append({"title": title, "date": date, "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def xinhuanet_article(url):
|
||||
"""
|
||||
新华社 - 文章正文
|
||||
标题: <h1><span class="title">...</span></h1>
|
||||
正文: <div id="detailContent"> 内的 <p> 标签
|
||||
"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r'<h1[^>]*>.*?<span class="title"[^>]*>([^<]+)</span>', html, re.DOTALL)
|
||||
if not title_match:
|
||||
title_match = re.search(r'<title>([^<]+)</title>', html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
# 提取正文
|
||||
content_match = re.search(r'id="detailContent"[^>]*>(.*?)</div>\s*(?:<div|</)', html, re.DOTALL)
|
||||
if content_match:
|
||||
content_html = content_match.group(1)
|
||||
content_paras = _extract_paragraphs(content_html)
|
||||
else:
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 优先级 2: 部委官网
|
||||
# ============================================================
|
||||
|
||||
def pbc_list():
|
||||
"""
|
||||
中国人民银行 - 货币政策/公告/沟通
|
||||
URL: https://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html
|
||||
结构: 服务端渲染,<a href="/goutongjiaoliu/...">标题</a>
|
||||
"""
|
||||
html = _fetch(
|
||||
"https://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html"
|
||||
)
|
||||
items = re.findall(
|
||||
r'<a[^>]*href="(/goutongjiaoliu/[^"]+)"[^>]*>([^<]{10,})</a>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
seen = set()
|
||||
for href, title in items:
|
||||
title = title.strip()
|
||||
if title and href not in seen and len(title) > 5:
|
||||
seen.add(href)
|
||||
# 从 URL 提取日期 (格式: 2026071518015458230)
|
||||
date_match = re.search(r"/(20\d{6})\d{11}/", href)
|
||||
date = ""
|
||||
if date_match:
|
||||
d = date_match.group(1)
|
||||
date = f"{d[:4]}-{d[4:6]}-{d[6:8]}"
|
||||
results.append(
|
||||
{
|
||||
"title": title,
|
||||
"date": date,
|
||||
"url": "https://www.pbc.gov.cn" + href,
|
||||
}
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def pbc_article(url):
|
||||
"""中国人民银行 - 文章正文(正文在 <p> 标签中)"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def mof_list():
|
||||
"""
|
||||
财政部 - 财政新闻/政策
|
||||
URL: https://www.mof.gov.cn/zhengwuxinxi/caizhengxinwen/
|
||||
结构: 服务端渲染,<a href="t202607...">标题</a> + 日期
|
||||
"""
|
||||
html = _fetch("https://www.mof.gov.cn/zhengwuxinxi/caizhengxinwen/")
|
||||
items = re.findall(
|
||||
r'href="([^"]*t2026[^"]+\.htm)"[^>]*>\s*([^<]{10,80})\s*</a>\s*(?:.*?(\d{4}[-/]\d{2}[-/]\d{2}))?',
|
||||
html,
|
||||
re.DOTALL,
|
||||
)
|
||||
results = []
|
||||
seen = set()
|
||||
for url, title, date in items:
|
||||
title = title.strip()
|
||||
if title and url not in seen:
|
||||
seen.add(url)
|
||||
if url.startswith("./") or url.startswith("t20"):
|
||||
url = "https://www.mof.gov.cn/zhengwuxinxi/caizhengxinwen/" + url.replace("./", "")
|
||||
results.append({"title": title, "date": date or "", "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def mof_article(url):
|
||||
"""财政部 - 文章正文"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
date_match = re.search(r"发布日期[::]\s*([\d年\-./]+)", html)
|
||||
date = date_match.group(1).strip() if date_match else ""
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": date,
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def ndrc_list(page=1):
|
||||
"""
|
||||
发改委 - 产业政策/规划
|
||||
URL: https://www.ndrc.gov.cn/xxgk/
|
||||
结构: 服务端渲染,<ul class="u-list"><li><a>标题</a><span>日期(YYYY/MM/DD)</span></li></ul>
|
||||
分页: index_{page-1}.html
|
||||
"""
|
||||
if page == 1:
|
||||
list_url = "https://www.ndrc.gov.cn/xxgk/"
|
||||
else:
|
||||
list_url = f"https://www.ndrc.gov.cn/xxgk/index_{page - 1}.html"
|
||||
html = _fetch(list_url)
|
||||
items = re.findall(
|
||||
r'<a[^>]*href="([^"]+)"[^>]*>\s*([^<]{10,})\s*</a>\s*<span>\s*([\d/]+)\s*</span>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
for url, title, date in items:
|
||||
title = title.strip()
|
||||
if not title:
|
||||
continue
|
||||
if url.startswith("./"):
|
||||
url = "https://www.ndrc.gov.cn" + url[1:]
|
||||
results.append({"title": title, "date": date, "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def ndrc_article(url):
|
||||
"""发改委 - 文章正文(正文在 div.TRS_Editor 内)"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
editor_match = re.search(r'class="TRS_Editor"[^>]*>(.*?)</div>\s*<', html, re.DOTALL)
|
||||
if editor_match:
|
||||
content_paras = _extract_paragraphs(editor_match.group(1))
|
||||
else:
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def csrc_list(page=1):
|
||||
"""
|
||||
证监会 - 主席讲话/政策公告
|
||||
URL: https://www.csrc.gov.cn/csrc/c100028/
|
||||
结构: HTML 页面(API 返回空结果,需用 common/searchList 获取 HTML)
|
||||
HTML URL: /common/searchList/{channelid}?_isAgg=true&_isJson=true&_pageSize=18&_template=index&page={N}
|
||||
"""
|
||||
channel_id = "c100028"
|
||||
url = f"https://www.csrc.gov.cn/common/searchList/{channel_id}?_isAgg=true&_isJson=true&_pageSize=18&_template=index&page={page}"
|
||||
html = _fetch(url)
|
||||
items = re.findall(
|
||||
r'<a[^>]*href="(/csrc/c100028/c\d+/content\.shtml)"[^>]*>([^<]{10,})</a>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
seen = set()
|
||||
for path, title in items:
|
||||
title = title.strip()
|
||||
if title and path not in seen:
|
||||
seen.add(path)
|
||||
results.append(
|
||||
{
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": "https://www.csrc.gov.cn" + path,
|
||||
}
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def csrc_article(url):
|
||||
"""证监会 - 文章正文"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def mofcom_list():
|
||||
"""
|
||||
商务部 - 外贸/消费政策
|
||||
URL: https://www.mofcom.gov.cn/
|
||||
结构: 政策列表页使用 JSON API
|
||||
API: /api-gateway/jpaas-publish-server/front/page/build/unit
|
||||
"""
|
||||
html = _fetch("https://www.mofcom.gov.cn/")
|
||||
# 首页新闻是 SSR
|
||||
items = re.findall(
|
||||
r'<a[^>]*href="([^"]+)"[^>]*>\s*([^<]{10,80})\s*</a>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
seen = set()
|
||||
for url, title in items:
|
||||
title = title.strip()
|
||||
if title and url not in seen and len(title) > 8:
|
||||
seen.add(url)
|
||||
if url.startswith("/"):
|
||||
url = "https://www.mofcom.gov.cn" + url
|
||||
results.append({"title": title, "date": "", "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def mofcom_article(url):
|
||||
"""商务部 - 文章正文(正文在 div.wms-con 内)"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
content_match = re.search(r'class="wms-con"[^>]*>(.*?)</div>\s*<', html, re.DOTALL)
|
||||
if content_match:
|
||||
content_paras = _extract_paragraphs(content_match.group(1))
|
||||
else:
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 优先级 3: 权威媒体转载
|
||||
# ============================================================
|
||||
|
||||
def people_editorial_list():
|
||||
"""
|
||||
人民日报 - 社论/观点
|
||||
URL: http://opinion.people.com.cn/GB/8213/49160/index.html
|
||||
结构: 主页面有多个子栏目,每个子栏目页面有 <li> 文章列表
|
||||
文章URL格式: /n1/2026/0623/c223228-40745676.html (相对) 或完整URL
|
||||
"""
|
||||
base = "http://opinion.people.com.cn/GB/8213/49160/"
|
||||
html = _fetch(base + "index.html")
|
||||
# 获取所有子栏目链接(完整URL)
|
||||
sub_urls = re.findall(r'href="(http://opinion\.people\.com\.cn/GB/8213/49160/\d+/index\.html)"', html)
|
||||
sub_urls = list(dict.fromkeys(sub_urls))
|
||||
results = []
|
||||
seen = set()
|
||||
for sub in sub_urls:
|
||||
try:
|
||||
sub_html = _fetch(sub)
|
||||
# 解析 <li> 项目(注意:人民网的链接使用单引号 href='...')
|
||||
lis = re.findall(r"<li[^>]*>(.*?)</li>", sub_html, re.DOTALL)
|
||||
for li in lis:
|
||||
# 匹配单引号或双引号的 href
|
||||
m = re.search(r"href=['\"](/n1/\d{4}/\d{4}/c[\d-]+\.html)['\"][^>]*>([^<]{10,})</a>", li)
|
||||
if m:
|
||||
url_path, title = m.groups()
|
||||
title = title.strip()
|
||||
url = "http://opinion.people.com.cn" + url_path
|
||||
if title and url not in seen:
|
||||
seen.add(url)
|
||||
date_match = re.search(r"/n1/(20\d{2})/(\d{4})/", url)
|
||||
date = ""
|
||||
if date_match:
|
||||
year, md = date_match.groups()
|
||||
date = f"{year}-{md[:2]}-{md[2:]}"
|
||||
results.append({"title": title, "date": date, "url": url})
|
||||
except Exception:
|
||||
continue
|
||||
return results
|
||||
|
||||
|
||||
def people_article(url):
|
||||
"""人民日报 - 文章正文(正文在 <p> 标签中,class=rm_txt_zw 的容器内)"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
# 正文在 p 标签中
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def cctv_list(page=1):
|
||||
"""
|
||||
央视新闻 - 新闻联播文字版
|
||||
URL: https://news.cctv.com/lbj/
|
||||
结构: JSONP API
|
||||
API: https://news.cctv.com/2019/07/gaiban/cmsdatainterface/page/china_{page}.jsonp?callback=china
|
||||
注意: 需要设置 Referer 头
|
||||
"""
|
||||
api_url = f"https://news.cctv.com/2019/07/gaiban/cmsdatainterface/page/china_{page}.jsonp?callback=china"
|
||||
raw = _fetch(api_url, headers={"Referer": "https://news.cctv.com/"})
|
||||
# 解析 JSONP: china({...})
|
||||
json_match = re.search(r"[^(]+\((\{.*\})\)", raw, re.DOTALL)
|
||||
if not json_match:
|
||||
return []
|
||||
try:
|
||||
data = json.loads(json_match.group(1))
|
||||
except json.JSONDecodeError:
|
||||
return []
|
||||
items = data.get("data", {}).get("list", []) if isinstance(data.get("data"), dict) else []
|
||||
results = []
|
||||
for item in items:
|
||||
title = item.get("title", "").strip()
|
||||
url = item.get("url", item.get("link", ""))
|
||||
date = item.get("focus_date", item.get("date", ""))
|
||||
if title and url:
|
||||
results.append(
|
||||
{
|
||||
"title": title,
|
||||
"date": str(date)[:10],
|
||||
"url": url,
|
||||
}
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def cctv_article(url):
|
||||
"""央视新闻 - 文章正文(正文在 div.content_area 内)"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
content_match = re.search(r'class="content_area"[^>]*>(.*?)</div>\s*<', html, re.DOTALL)
|
||||
if content_match:
|
||||
content_paras = _extract_paragraphs(content_match.group(1))
|
||||
else:
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
def ce_list():
|
||||
"""
|
||||
经济日报 - 部委政策解读
|
||||
URL: http://www.ce.cn/
|
||||
结构: 服务端渲染,文章链接格式: /xwzx/gnsz/gdxw/202607/t20260721_xxxxxxx.shtml
|
||||
政策相关文章在 /gnsz/ (国内时政) 和 /xwzx/ (新闻) 栏目下
|
||||
"""
|
||||
html = _fetch("http://www.ce.cn/")
|
||||
items = re.findall(
|
||||
r'<a[^>]*href="([^"]*t2026[^"]+\.shtml)"[^>]*>([^<]{10,})</a>',
|
||||
html,
|
||||
)
|
||||
results = []
|
||||
seen = set()
|
||||
for url, title in items:
|
||||
title = title.strip()
|
||||
# 过滤政策相关文章(国内时政/新闻栏目)
|
||||
if "/gnsz/" not in url and "/xwzx/" not in url and "/syj/" not in url:
|
||||
continue
|
||||
if title and url not in seen:
|
||||
seen.add(url)
|
||||
if url.startswith("/"):
|
||||
url = "http://www.ce.cn" + url
|
||||
# 从 URL 提取日期
|
||||
date_match = re.search(r"/(20\d{6})/", url)
|
||||
date = ""
|
||||
if date_match:
|
||||
d = date_match.group(1)
|
||||
date = f"{d[:4]}-{d[4:6]}-{d[6:8]}"
|
||||
results.append({"title": title, "date": date, "url": url})
|
||||
return results
|
||||
|
||||
|
||||
def ce_article(url):
|
||||
"""经济日报 - 文章正文(正文在 div.content.clearfix 内)"""
|
||||
html = _fetch(url)
|
||||
title_match = re.search(r'id="NewsArticleTitle"[^>]*>([^<]+)', html)
|
||||
if not title_match:
|
||||
title_match = re.search(r"<title>([^<]+)</title>", html)
|
||||
title = title_match.group(1).strip() if title_match else ""
|
||||
content_match = re.search(r'class="content clearfix"[^>]*>(.*?)</div>\s*<', html, re.DOTALL)
|
||||
if content_match:
|
||||
content_paras = _extract_paragraphs(content_match.group(1))
|
||||
else:
|
||||
content_paras = _extract_paragraphs(html)
|
||||
return {
|
||||
"title": title,
|
||||
"date": "",
|
||||
"url": url,
|
||||
"content": "\n\n".join(content_paras),
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 统一入口
|
||||
# ============================================================
|
||||
|
||||
SCRAPERS = {
|
||||
"gov.cn": {"list": gov_zhengce_list, "article": gov_article, "name": "中国政府网"},
|
||||
"xinhuanet": {"list": xinhuanet_list, "article": xinhuanet_article, "name": "新华社"},
|
||||
"pbc": {"list": pbc_list, "article": pbc_article, "name": "中国人民银行"},
|
||||
"mof": {"list": mof_list, "article": mof_article, "name": "财政部"},
|
||||
"ndrc": {"list": ndrc_list, "article": ndrc_article, "name": "发改委"},
|
||||
"csrc": {"list": csrc_list, "article": csrc_article, "name": "证监会"},
|
||||
"mofcom": {"list": mofcom_list, "article": mofcom_article, "name": "商务部"},
|
||||
"people": {"list": people_editorial_list, "article": people_article, "name": "人民日报"},
|
||||
"cctv": {"list": cctv_list, "article": cctv_article, "name": "央视新闻"},
|
||||
"ce": {"list": ce_list, "article": ce_article, "name": "经济日报"},
|
||||
"scio": {"list": scio_press_list, "article": pbc_article, "name": "国新办(PBC镜像)"},
|
||||
}
|
||||
|
||||
|
||||
def scrape_list(site_key, **kwargs):
|
||||
"""统一列表抓取入口"""
|
||||
scraper = SCRAPERS.get(site_key)
|
||||
if not scraper:
|
||||
return []
|
||||
return scraper["list"](**kwargs)
|
||||
|
||||
|
||||
def scrape_article(site_key, url):
|
||||
"""统一文章抓取入口"""
|
||||
scraper = SCRAPERS.get(site_key)
|
||||
if not scraper:
|
||||
return {"title": "", "date": "", "url": url, "content": ""}
|
||||
return scraper["article"](url)
|
||||
Reference in New Issue
Block a user