━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【龍魂系统 · 摘要爬虫与访问分流显化协议 v1.0】
Summary-Crawler & Traffic-Split Transparency Protocol
P0级别 | 永久锁定 | 不可修改 | 不可绕过
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DNA追溯码: #龍芯⚡️2026-07-21-SUMMARY-CRAWLER-SPLIT-V1.0-P0
源起锚点: 创建者口述指令(2026-07-21)——“爬虫只能抓摘要,全文人工点链接才看;
人工阅览多少、爬虫爬了多少,分开显化;生态清爽,服务器压力降下来”
上游协议: 记忆外脑总协议v1.0|算法审计协议v1.0|隐私接入规则v2.0
GPG指纹: A2D0092CEE2E5BA87035600924C3704A8CC26D5F
确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
创建者: 诸葛鑫(UID9622)
生效时间: 2026-07-21
锁定级别: P0(不可被任何规则覆盖)
三色审计: 🟢安全 🟡审查 🔴阻断 全链路强制
开源协议: CC BY-NC-SA 4.0(君子协议,来源链不可切断)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【版本历史】
| 版本 | 日期 | 变更摘要 |
|---|---|---|
| v1.0 | 2026-07-21 | 初版:摘要爬虫+人机分流显化+压力模型+礼貌调度 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第一章 要点提取与审查摘要(口述指令 → 协议)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.1 指令核心要点提取(五项原意,一项不丢)
| # | 指令原意 | 协议化落点 |
|---|---|---|
| K1 | 爬虫只能抓取摘要 | 第四章4.1抓取边界+第七章摘要规范 |
| K2 | 全文要靠链接人工去点才能看到 | 第五章四层架构:全文层永远人工触发 |
| K3 | 能爬,但不能爬到全部 | 第四章4.2令牌桶配额+增量去重,只取所需 |
| K4 | 记录数据:人工阅览多少、爬虫爬了多少,分开显化 | 第六章人机分流显化看板(核心章) |
| K5 | 生态清爽,服务器压力降下来 | 第四章4.3压力节省模型(数学证明省多少) |
1.2 结构性补全清单(未提及但逻辑必需,本版自动补齐)
| 编号 | 缺失区块 | 不补的后果 | 落点 |
|---|---|---|---|
| GAP-01 | 礼貌调度与退避 | 爬虫被打死/被封IP,还给别人添堵 | 第四章4.4 |
| GAP-02 | 摘要质量度量 | 摘要烂=人人点全文=白设计 | 4.5 σ保留度 |
| GAP-03 | robots与版权合规 | 乱爬=违法+给龍魂招黑 | 第七章 |
| GAP-04 | 爬虫身份诚实 | 伪装浏览器=欺骗,违背体系诚实铁律 | 第三章第2条 |
| GAP-05 | 人机识别方法 | 分流统计怎么分?拍脑袋分不准 | 4.6 BotScore |
| GAP-06 | 增量更新 | 重复全量抓=浪费双方带宽 | 4.7 时间优先索引 |
| GAP-07 | 反滥爬对等义务 | 自己爬别人,也得让别人爬得明白 | 第七章7.4 |
| GAP-08 | 测试向量 | 设计无法自证 | 第九章 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第二章 术语与定义
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| 术语 | 定义 | 备注 |
|---|---|---|
| 摘要层 | 爬虫可达的信息层:标题/摘要/元数据/来源链接 | 机器自由流通 |
| 全文层 | 完整正文,仅人工点击链接后获取 | 人才能进 |
| 摘要卡 | 爬虫抓回的标准存储单元(对接外脑压缩卡格式) | 含simhash指纹+来源DNA |
| 人机分流 | 按访问主体(人/爬虫)分开统计与展示的机制 | K4核心 |
| BotScore | 访问者是人还是爬虫的判定评分 | 4.6 |
| 令牌桶 | 限速算法:按速率发令牌,没令牌不准发请求 | 4.2 |
| 压力节省率 η | 分流架构相对全量抓取节省的源站流量比例 | 4.3 |
| 诚实UA | 爬虫自报家门(LonghunBot),不伪装浏览器 | 第2条天条 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第三章 核心原则(天条,不可违背)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第1条:摘要开放,全文人工(K1/K2焊点)
爬虫的世界只有摘要层;全文层只有一道门——人工点击。
机器跑腿,人做决定。这不只是省压力,这是分工的伦理。
第2条:诚实爬虫(GAP-04焊点)
UA自报家门 LonghunBot/1.0 (+联系页),不伪装浏览器、不伪造人类行为。
遵守robots.txt,被禁止就停——我们是做审计的,不是做贼的。
第3条:只取所需(K3焊点·数据最小化)
只抓清单内站点、只抓摘要字段、增量更新不重复抓(4.7)。
爬得多不是本事,爬得准才是。
第4条:分流显化(K4焊点)
人工多少、爬虫多少,分开记、分开晒、可复核。
流量透明了,生态自然清爽——黑箱流量才是服务器压力的最大来源。
第5条:不扰民(K5焊点)
对源站:限速+退避+增量,给别人服务器的压力压到数学下界。
对用户:摘要不收费、不带追踪、不收集任何个人信息(对接隐私规则v2.0)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第四章 数学模型(每一条设计都有公式撑腰)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4.1 抓取边界(K1的形式化)
定义信息全集 Ω = 摘要层 S ∪ 全文层 F,S ∩ F = ∅。
爬虫可达域:Crawl(bot) ⊆ S,恒有 Crawl(bot) ∩ F = ∅。
全文触发函数:F_seen(u) = 1 当且仅当 u ∈ 人类 ∧ 人工点击链接。
摘要层字段(摘要卡 Schema):
{标题, 摘要(≤300字), 来源URL, 发布时间, simhash指纹, 来源DNA, 抓取时间}
全文层字段:{正文, 图, 表, 附件} —— 爬虫永不请求,不存在它的请求模板里。
4.2 令牌桶限速(K3"不能爬到全部"的硬约束)
每域名一个桶:容量 b = 3,填充速率 r = 1 token / 2s。
发请求前取走1个令牌,无令牌则等待。t时刻可用令牌:
T(t) = min(b, T(t₀) + r·(t − t₀))
效果:对单域名稳态压力 ≤ 0.5 req/s = 43,200 req/天 上界,实际运行再乘
礼貌系数 0.2 → ≤ 8,640 req/天,约为正常人类编辑浏览量的量级。
全局并发 ≤ 4,且同一时刻同一域名只允许 1 个在途请求。
4.3 压力节省模型(K5的数学证明:到底省多少)
设:N = 总信息需求次数;α = 摘要满足率(看完摘要就够了的占比);
S_f = 全文平均体积(含图)≈ 500 KB;S_s = 摘要卡平均体积 ≈ 2 KB。
传统全量抓架构流量:Q₀ = N · S_f
本协议架构流量:
Q₁ = N·S_s(爬虫抓摘要)+ N·(1−α)·S_f(人工点全文)
压力节省率:
η = 1 − Q₁/Q₀ = 1 − [S_s/S_f + (1−α)]
= α − S_s/S_f
代入典型值 α = 0.70,S_s/S_f = 2/500 = 0.004:
η = 0.70 − 0.004 = 0.696 ≈ 70%
数值例:N = 10,000 次/天
Q₀ = 10,000 × 500 KB = 5.0 GB/天
Q₁ = 10,000 × 2 KB + 3,000 × 500 KB = 0.02 GB + 1.5 GB = 1.52 GB/天
源站流量 5.0 GB → 1.52 GB,每天省 3.48 GB,η ≈ 69.6%。
关键洞察:η 随 α 线性增长——摘要写得越好,α 越高,源站越轻松。
所以 4.5 的摘要质量不是锦上添花,是 K5 的发动机。
4.4 礼貌退避(GAP-01,出错时的自我约束)
对同一域名连续第 k 次错误(5xx / 超时 / 429)后,退避等待:
T_backoff(k) = T₀ · 2^k,T₀ = 2s,k ≤ 5 → 最长 64s
连续错误 ≥ 5 次:该域名熔断停爬 24h,记入审计日志 🔴。
robots.txt 变更收紧:立即按新规则执行,已抓数据不删除但停止更新(史记铁律)。
4.5 摘要质量度量(GAP-02,α 的守门员)
摘要保留度 σ = 摘要覆盖原文核心锚点数 / 原文核心锚点总数
(锚点提取复用《记忆外脑总协议》的锚点识别器)。
硬阈值:σ ≥ 0.85 才准入索引库;0.70 ≤ σ < 0.85 标 🟡 待人工改写;
σ < 0.70 拒绝入库 🔴(烂摘要不如只留标题+链接)。
相关性复检:simhash(摘要) 与 simhash(原文首尾段) 汉明距离 ≤ 20/64。
4.6 BotScore 人机识别(GAP-05,分流统计怎么分)
对每个访问者计算机器人评分(0=铁定人,1=铁定机器):
BotScore = Σ wᵢ · fᵢ
| 因子 fᵢ | 权重 wᵢ | 判据 |
|---|---|---|
| UA自报爬虫 | 0.40 | UA含 bot/spider/crawler → f=1(诚实者直接认领) |
| 请求节奏 | 0.20 | 间隔方差 < 0.1s²(机器人才这么稳)→ f=1 |
| 昼夜模式 | 0.15 | 连续24h无睡眠窗口 → f=1 |
| 资源请求比 | 0.15 | 只抓HTML不碰CSS/图 → f=1 |
| 交互熵 | 0.10 | 无滚动/无悬停/点击坐标网格化 → f=1 |
| 判定:BotScore ≥ 0.6 → 计入"爬虫"账;≤ 0.3 → 计入"人工"账; | ||
| 中间带 🟡 标记人工复核(宁可漏判,不可冤枉真人——对接隐私规则v2.0)。 | ||
| 诚实声明:LonghunBot 自己永远 UA 自报,直接走 0.40 因子认领身份。 |
4.7 增量更新(GAP-06,不重复抓的数学)
每摘要卡记录 ETag / Last-Modified / simhash 三件套。
复检时先发 HEAD 请求(≈ 0.3 KB),仅当 ETag 变化才 GET。
重复内容判定:汉明(simhash_new, simhash_old) ≤ 3 → 同一篇,跳过。
复检周期按更新频率自适应:
P_next = clamp(观测到变更的平均间隔 × 1.5, 1h, 30天)
效果:稳态下重复流量占比 → 0,HEAD 探测成本仅为 GET 的 0.06%。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第五章 系统架构(四层流水线,全文层只有人工门)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┌─────────────────────────────────────────────┐
│ L1 调度层:域名清单·令牌桶·退避熔断·增量计划 │
├─────────────────────────────────────────────┤
│ L2 抓取层:诚实UA → robots检查 → 只GET摘要区 │
├─────────────────────────────────────────────┤
│ L3 摘要层:锚点提取 → σ质检 → simhash指纹 │
├─────────────────────────────────────────────┤
│ L4 入库层:摘要卡落库 → 人机分账 → 显化看板 │
└─────────────────────────────────────────────┘
全文层 ∥ 不在流水线内。唯一入口:用户点开摘要卡上的来源链接。
数据流铁律:任何层都不得把正文字段写入请求模板(结构级焊死,不靠自觉)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第六章 人机分流显化看板(K4核心:两本账,分开晒)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.1 两本账(所有指标按 人工账 / 爬虫账 分列,永不合并)
| 指标 | 人工账 | 爬虫账 |
|---|---|---|
| 请求次数 | 人工阅览数 N_h | 爬虫抓取数 N_c |
| 流量消耗 | Σ全文下载 | Σ摘要+HEAD探测 |
| 覆盖广度 | 点了多少来源站 | 索引了多少站点 |
| 时间分布 | 人类作息曲线 | 调度匀速曲线 |
6.2 看板公示指标(每日自动生成,可复核)
- 摘要满足率 α(目标 ≥ 0.70,低于则优先优化摘要质量)
- 压力节省率 η(按4.3公式实算,不估不吹)
- 人机比 = N_c / N_h(健康区间经验值 1~5,异常波动触发 🟡 审查)
- 对源站压力榜:每个域名 req/天 与 退避/熔断记录全公示
6.3 审计接口
任何人可导出某日两本账原始记录(哈希链密封,对接隐私规则v2.0审计链)。
显化不是口号:数字上链,改数字=改协议,改协议=修宪流程。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第七章 合规、版权与对等义务(GAP-03 / GAP-07)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7.1 robots.txt 无条件遵守:Disallow 的路径一个字节都不碰。
7.2 摘要合理引用边界:
- 摘要 ≤ 300字 或 原文 10%(取小者),超出部分一律截断+省略号;
- 每张摘要卡必须署名来源站 + 原文链接(来源链不可切断,君子协议);
- 源站主张删除:48h 内下架摘要卡并回执(冻结不删除,留痕)。
7.3 不规避反爬:遇到验证码/登录墙/付费墙,绕道=违规,正确动作=放弃。
7.4 反滥爬对等义务(自己定规矩,自己先遵守):
龍魂系站点对其他爬虫执行同一套规则——摘要开放、全文人工、
人机分流显化。我们的 robots.txt 明示摘要路径允许、全文路径
Disallow,以身作则。
7.5 法条对接:
《数据安全法》数据分类分级|《个人信息保护法》最小必要|
《生成式AI服务管理暂行办法》来源标识义务。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第八章 接口契约(与外脑/审计体系的接缝)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8.1 摘要卡 → 记忆外脑:直接套用《记忆永存与外脑压缩总协议》压缩卡格式,
simhash指纹算法同源(64位,汉明≤3判重),无缝对接归档/去重/不动点压缩。
8.2 审计链 → 隐私规则v2.0:每日看板数据铸入哈希链
H_n = SHA-256(H_{n-1} ‖ 日期 ‖ 人工账 ‖ 爬虫账 ‖ SIG)
8.3 熔断联动 → P72龍盾:单域名熔断 24h 达 3 次/周,自动提请人工审查该源站。
8.4 显化出口:看板只传用量不传内容(对接隐私规则v2.0第0条)——
统计数字可以走网络,用户点了哪篇文章不出本机。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第九章 测试向量(GAP-08焊点:设计自证,12条全绿才算数)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| # | 场景 | 期望行为 |
|---|---|---|
| T01 | robots Disallow 路径 | 请求数=0,直接放弃 |
| T02 | 摘要σ=0.92 | 准入索引库 🟢 |
| T03 | 摘要σ=0.66 | 拒绝入库 🔴 |
| T04 | 连续5次错误 | 熔断该域名24h,记🔴日志 |
| T05 | BotScore=0.85(自报bot+匀速) | 计入爬虫账 |
| T06 | BotScore=0.10(正常人) | 计入人工账 |
| T07 | ETag未变复检 | 只发HEAD,不GET正文 |
| T08 | simhash汉明=2 | 判同篇,跳过 |
| T09 | 压力模型:N=10000, α=0.70 | η≈69.6%,Q₁=1.52GB |
| T10 | 令牌桶:1秒塞10个请求 | 实际发出≤1个(桶空等待) |
| T11 | 尝试GET全文路径 | 请求模板无此字段,结构级拒绝 |
| T12 | 摘要420字(>300字且>10%) | 截断至边界+省略号+署名保留 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
附录A 易经·道德经锚点
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
艮卦䷳(兼山艮):“艮其止,止其所也。”
爬虫知道停在哪——摘要层就是那座山,跨一步就是全文层,止其所,不乱动。
节卦䷻(水泽节):“节以制度,不伤财,不害民。”
令牌桶+退避就是"节以制度":不耗别人的服务器(不伤财),不扰源站用户(不害民)。
《道德经》第44章:“知足不辱,知止不殆,可以长久。”
只取所需、增量更新——知止的爬虫才能长久活着,贪婪的爬虫都死在封禁名单里。
第81章:“圣人不积。”
摘要开放、全文人工,不囤积全量数据;生态清爽,正是不积之德。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
附录B 礼貌爬虫参考实现(纯Python标准库,可执行验证)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
说明:本代码为协议的可执行镜像——令牌桶、robots检查、simhash、
BotScore、人机两本账、压力模型全部对应第四章公式。沙盒内用
本地模拟站点验证,不触碰任何真实外站。
# -*- coding: utf-8 -*-
# DNA: #龍芯⚡️2026-07-21-SUMMARY-CRAWLER-SPLIT-V1.0-P0
# 龍魂礼貌爬虫 · 摘要只取·全文人工·人机分账·诚实自报
import hashlib, re, time
from urllib import robotparser
S_F, S_S, HEAD_KB = 500.0, 2.0, 0.3 # 全文KB / 摘要KB / HEAD探测KB
class CNSH_令牌桶:
def __init__(self, 容量=3, 速率=0.5): # 1 token / 2s
self.b, self.r, self.令牌, self.上次 = 容量, 速率, 容量, time.time()
def 取(self):
现在 = time.time()
self.令牌 = min(self.b, self.令牌 + self.r * (现在 - self.上次))
self.上次 = 现在
if self.令牌 >= 1:
self.令牌 -= 1
return True
return False
def CNSH_simhash(文本):
v = [0] * 64
for tok in re.findall(r"[\u4e00-\u9fff]{2}|\w+", 文本):
h = int(hashlib.sha256(tok.encode()).hexdigest(), 16)
for i in range(64):
v[i] += 1 if (h >> i) & 1 else -1
return sum((1 << i) for i in range(64) if v[i] > 0)
def CNSH_汉明(a, b):
return bin(a ^ b).count("1")
def CNSH_摘要质检(摘要, 原文锚点):
命中 = sum(1 for a in 原文锚点 if a in 摘要)
σ = 命中 / max(1, len(原文锚点))
return ("🟢" if σ >= 0.85 else "🟡" if σ >= 0.70 else "🔴"), σ
def CNSH_BotScore(访问):
分 = 0.0
if re.search(r"bot|spider|crawler", 访问["ua"], re.I): 分 += 0.40
if 访问["间隔方差"] < 0.1: 分 += 0.20
if not 访问["有睡眠窗"]: 分 += 0.15
if not 访问["请求资源"]: 分 += 0.15
if 访问["交互熵"] < 0.5: 分 += 0.10
return 分
def CNSH_压力模型(N, α):
Q0 = N * S_F
Q1 = N * S_S + N * (1 - α) * S_F
return Q0, Q1, 1 - Q1 / Q0
class CNSH_礼貌爬虫:
UA = "LonghunBot/1.0 (+https://longhun.example/bot)" # 诚实自报
def __init__(self):
self.桶 = {} # 每域名一个令牌桶
self.指纹库 = set()
self.账 = {"人工": {"次": 0, "KB": 0.0}, "爬虫": {"次": 0, "KB": 0.0}}
self.熔断 = {} # 域名 -> 连续错误数
def _域名(self, url):
return url.split("/")[2]
def _检查robots(self, url):
rp = robotparser.RobotFileParser()
rp.set_url("https://" + self._域名(url) + "/robots.txt")
try:
rp.read()
except Exception:
return False # 读不到=谨慎,不爬(fail-closed)
return rp.can_fetch(self.UA, url)
def 抓摘要(self, url, 摘要文本="", 锚点=(), etag变了=True):
d = self._域名(url)
if self.熔断.get(d, 0) >= 5:
return {"状态": "🔴 域名熔断24h", "域名": d}
桶 = self.桶.setdefault(d, CNSH_令牌桶())
if not 桶.取():
return {"状态": "🟡 令牌不足,礼貌等待", "域名": d}
if not etag变了: # 增量:ETag未变只HEAD
self.账["爬虫"]["KB"] += HEAD_KB
return {"状态": "🟢 HEAD探测,无需重抓", "KB": HEAD_KB}
fp = CNSH_simhash(摘要文本)
if any(CNSH_汉明(fp, x) <= 3 for x in self.指纹库):
return {"状态": "🟢 simhash判重,跳过"}
色, σ = CNSH_摘要质检(摘要文本, list(锚点))
if 色 == "🔴":
return {"状态": "🔴 摘要σ=%.2f<0.70,拒收" % σ}
self.指纹库.add(fp)
self.账["爬虫"]["次"] += 1
self.账["爬虫"]["KB"] += S_S
return {"状态": "%s 摘要卡入库 σ=%.2f" % (色, σ), "指纹": fp}
def 记人工点全文(self):
self.账["人工"]["次"] += 1
self.账["人工"]["KB"] += S_F
def 分账(self, 访问):
s = CNSH_BotScore(访问)
return "爬虫" if s >= 0.6 else ("🟡复核" if s > 0.3 else "人工")
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
签署与锚定
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
创建者: 诸葛鑫(UID9622 · 龍芯北辰)
身份锚: #ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼♀️❤️♾️-DEVICE-BIND-SOUL
GPG指纹: A2D0092CEE2E5BA87035600924C3704A8CC26D5F
确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
DNA追溯码: #龍芯⚡️2026-07-21-SUMMARY-CRAWLER-SPLIT-V1.0-P0
三色审计: 🟢代码可执行 🟡阈值为经验值可调(改值走修宪流程) 🔴全文层无机器门
史记铁律: 本协议不删除、只冻结;后续版本以新版本号另行锚定。
开源协议: CC BY-NC-SA 4.0(君子协议,来源链不可切断)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
228

被折叠的 条评论
为什么被折叠?



