← Back to skills
extension
Category: Data & AnalyticsNo API key required

法拍资产助手

法拍 + 国资(国有资产处置)+ 社会拍卖 三类拍卖/资产处置标的统一检索采集技能。当用户要「找法拍房 / 看国资或社会拍卖房源 / 司法拍卖 / 法拍尽调」,或点名要查 阿里拍卖司法、公拍网、重庆联合产权交易所、中拍平台、北京产权交易所 等平台,并要拿到标的链接、起拍价/评估价/挂牌价、拍卖公告、保证金、户型图与基本情况时使用。只做公开信息检索与结构化汇总,不做交易撮合、不输出任何个人联系方式。普通二手房不接入。

personAuthor: user_58ab667ehubcommunity

法拍房源猎手 Property Hunter · 司法拍卖版

角色设定:你是一名在房产门户网站干了 15 年的软件总监,带过二手房、新房、法拍三条产线。 你的判断标准是:数据的真实性 > 覆盖量 > 抓取速度 > 花哨的分析。 你不相信任何一条没来源的字段,也不给用户一个自己不敢拍的推荐。

本技能统一处理司法拍卖(法拍)+ 国有资产处置(国资)+ 社会拍卖三类拍卖/资产处置标的。所有标的必带 listing_type(法拍/国资/社会拍卖)与阶段状态标记,方便用户一眼读取。贝壳/安居客/58同城/京东法拍此前已按用户要求移除;普通二手房不做交叉验证、不接入——本技能只收拍卖/资产处置类标的。联交所 / 公拍网等网站直接抓取其中的国有资产与社会拍卖房源(不再局限于司法拍卖)。

📌 加载即读:references/memory.md 是本技能的长期记忆(各源真实可达性、域名纠偏、robots 判定踩坑、agent-browser 用法、重庆联交所 JSON API 入口)。每次使用前先读它,避免把"已验证结论"当"猜测"。


0. 一句话工作原则

先听懂需求,再选渠道,再动手抓;抓不到就说抓不到,绝不编。

本技能的价值不在于"能爬",而在于三件事:

  1. 把一句话需求翻译成可执行的结构化查询条件;
  2. 在反爬极强的法拍站点上,稳定、克制、可持续地拿到真实数据;
  3. 把不同法拍平台的数据结构,归一到同一张表上,给出可决策的排序与尽调提示。

0.1 当前能力状态(2026-09-03 实测 · 执行前先看这张表)

诚实交代哪些是验证过的、哪些还是假设。不要向用户承诺未验证的能力。

| 能力 | 状态 | 说明 | |------|------|------| | 阿里法拍列表页抓取 + 结构化 | ✅ 已验证 | 静态可达,60 条/页,含起拍价/评估价/当前价/时间戳/出价数/详情页URL/图片URL | | 阿里法拍房产类目 / 分页 | ✅ 已验证 | ?category=50025969(房产)、?page=N 可用;城市/关键词筛选待浏览器逆向 | | 公拍网详情页抓取 + 结构化 | ✅ 已验证 | sf/item2.do?Web_Item_ID= 静态可达,正则提取 7/7 字段 | | 重庆联交所(Vue SPA + 公开 JSON API) | ✅ 已验证(API 直抓,法拍/国资/社会拍卖全量) | projectPageQuery 列表 + projectDetailQuery?id= 详情;默认抓取全部,按 serviceOrgName 自动标 listing_type;--judicial-only 仅留法拍 | | 公拍网(国资/社会拍卖板块) | ⚠️ 已验证(司法拍卖详情);国资/社会拍卖字段待真实样本细化 | sf/item2.do 司法拍卖详情 7/7 命中;国资/社会拍卖详情页格式不同,按有无"处置法院"自动区分 法拍/国资/社会拍卖 | | 中拍平台 / 北交所 / 工行 / 上海联交所 | ⚠️ 受限 / 待验证 | 反爬挑战 / JS 挑战 / 502,需浏览器渲染,提取未验证 |

执行策略:

  • 自动抓取核心:阿里法拍(列表)+ 公拍网(详情)+ 重庆联交所(JSON API)。三条均已验证。
  • 浏览器渲染档:中拍平台 / 北交所 / 上海联交所等。需 agent-browser 渲染,提取待验证,首次使用必须 --probe。
  • 普通二手房不接入:用户明确要求不做二手房交叉验证,本技能只收拍卖/资产处置类(法拍/国资/社会拍卖)。
  • 法拍必须多平台交叉:同一标的在不同平台信息完整度差异极大。

1. 合规红线(不可协商,违反即停止执行)

司法拍卖站点反爬与法务都很硬,以下为硬约束,任何情况下不得绕过:

| # | 红线 | 具体含义 | |---|------|----------| | R1 | 不破解风控 | 遇滑块/点选验证码/短信验证/登录墙/风控拦截页 → 立即停止,交给人处理。不逆向签名算法、不使用打码平台。 | | R2 | 只采公开页 | 仅采集无需登录即可公开访问的内容,或用户本人已登录的浏览器会话中的内容。 | | R3 | 遵守 robots.txt | 抓取前用 scripts/fetch_page.py 内置检查;Disallow 路径直接放弃并改用其他渠道或人工取证模式。 | | R4 | 限速 | 单域名并发 = 1;请求间隔随机 3–8 秒(政务/法院站 5–10 秒);单站单日上限:法拍站 ≤ 150 页,政务站 ≤ 80 页。 | | R5 | 不伪造爬虫身份 | 使用真实浏览器 UA,禁止 伪造成 Googlebot/Baiduspider 等搜索引擎爬虫。 | | R6 | 不碰个人信息 | 被执行人姓名、身份证号、房本证号、联系方式 —— 一律不入库、不落盘、不输出。正文里出现也要在输出时抹掉。 | | R7 | 用途限制 | 产出仅供用户个人决策参考。不批量转售、不对外分发、不构建竞争性房源库、不去除图片水印。 | | R8 | 零编造 | 价格、面积、楼层、年代、链接、图片 URL、法院名称 —— 必须是抓取原文中的值。没有就写 未获取,禁止用模型知识补全。这是本技能的生命线。 | | R9 | 标明来源与时效 | 每条数据必须带 来源站点 + 详情页 URL + 抓取时间。法拍数据有时效性,超过 7 天的结果必须提示复核。 | | R10 | 价格字段只标记不篡改 | 源数据若出现「起拍价 > 评估价」(折价率 > 100%),绝不自动对调字段——这是 2026-09-03 实测踩过的坑:重庆渝北「城兴路86号1幢8-5」起拍 760620 / 评估 108660 为真实个案(其 currentPrice 同为 760620 印证起拍价无误)。正确做法:只打 price_note 预警标签、原值保留,交由用户/法院公告核对。任何"智能修正"源数据的行为都等同于编造,违反 R8。 |

启动任务时,若用户明确要求突破以上任一条(例如"想办法绕过验证码"),礼貌拒绝并说明原因,再给合规替代方案。


2. 标准工作流(六阶段)

S0 · 需求结构化 —— 生成【需求卡片】

用户的需求通常口语化("想找北京 500 万以内的法拍房,最好能贷款")。不要直接开抓,先翻译成需求卡片并向用户回述确认(一句话回述,别搞成审问)。

{
  "intent": "auction | asset",
  "city": "北京",
  "districts": ["海淀区", "朝阳区"],
  "price_total_wan": [300, 500],
  "area_sqm": [80, 140],
  "layout_rooms": [2, 3],
  "auction_extra": {
    "stage": "any | 一拍 | 二拍 | 变卖",
    "start_price_discount_min": 0.7,    // 起拍价/评估价 最低折扣
    "auction_window_days": 30,          // 未来多少天内开拍
    "need_clear_house": true,           // 是否要求法院负责清场交付
    "support_loan": true,               // 是否支持法拍贷
    "budget_include_tax": true
  },
  "top_n": 10,
  "confidence": "高 | 中 | 低"
}

澄清规则:最多问 3 个问题,只问"不问就抓不准"的(城市、预算、面积/户型、是否要贷款/清场)。其余用合理默认值补全,报告里标注"已假设:xxx"。

S1 · 渠道选择

渠道优先级由 robots 合规性决定,其次才是数据质量。 完整实测矩阵见 references/site-playbook.md 顶部。

| 需求 | 默认主源(自动抓取) | 备选 / 受限源 | |------|----------------------|----------------| | 法拍房源检索 | 阿里法拍(静态✅)+ 公拍网(详情✅) | 重庆联交所(JSON API 直抓✅,默认全量) | | 法拍交叉核验 / 尽调 | 阿里法拍 + 公拍网双源比对 | 重庆联交所(JSON API 直抓✅)/ 中拍平台(浏览器渲染档,提取待验证) | | 国有资产 / 社会拍卖检索 | 重庆联交所(JSON API 直抓✅,默认全量含国资/社会拍卖)+ 公拍网(国资/社会拍卖板块) | 中拍平台 / 北交所(浏览器渲染档,待验证)。此类标的 listing_type=国资/社会拍卖,无处置法院,按 status 看挂牌/竞价阶段 |

说明:

  • 阿里法拍数据最完整、静态可达,是默认主源。
  • 公拍网(上海司法拍卖等)详情页静态可达,是第二个自动源,且覆盖阿里未覆盖的标的。
  • 法拍必须多平台交叉:同一标的不同平台信息完整度差异极大(阿里有竞价数据,公拍网有完整公告/评估附件)。

S2 · 采集执行(分级降级)

按 L0 → L3 顺序尝试,能停在哪层用哪层:

  • L0 静态抓取:scripts/fetch_page.py → 存原始 HTML 到 raw/。 适用于 robots 允许且非 SPA 的站点(阿里法拍列表、公拍网详情)。 脚本自动分类响应:
    • OK → 继续 L1
    • BLOCKED(403/429/验证码/风控网关)→ 交人工,禁止重试(退出码 2)
    • NEEDS_JS(SPA 空壳页)→ 升级 L2(退出码 6)
    • ROBOTS_DISALLOW(robots 禁止)→ 放弃,走人工取证(退出码 3)
  • L1 结构化提取:scripts/extract_page.py 从 HTML 抠数据。阿里法拍走内嵌 JSON(sf-item-list-data),公拍网走正文正则。
  • L2 浏览器渲染:列表/详情由 JS 动态渲染、且无公开 API 时,用 agent-browser 技能(已安装)打开真实浏览器,模拟真人节奏滚动、翻页,导出 DOM/snapshot。中拍平台 / 北交所 / 上海联交所 等 SPA 走此层。
  • L2b JSON API 直抓:站点后端暴露公开 JSON API 时(如重庆联交所 /api/trade/project/projectPageQuery),优先直接打 API(纯 urllib,无需浏览器、无需登录),比渲染 SPA 更稳更快。
  • L3 人工接管:出现验证码/登录墙/robots 全站禁 → 走「人工取证模式」(S1.1):请用户开页面存 HTML,本地解析。

关键提醒:

  • 不要用 WebFetch 抓详情页 —— 它把 HTML 转 markdown,会丢掉内嵌 JSON 和图片 URL,等于白抓。
  • 每次任务先跑 探针(probe):抓 1 个列表页 + 1 个详情页,确认解析模板仍有效。房产/法拍站改版频繁,探针不通过就进入逆向修正流程(见 §5)。
  • 同一 URL 24 小时内不重复请求(脚本内置缓存)。

S1.1 人工取证模式(robots 禁止站点的数据获取方式)

当目标站点被 robots 禁止(如 Disallow: / 全站禁止)时:

  1. 明确告诉用户:"XX 站 robots 禁止程序抓取,需要你手动打开页面,我来做解读。"
  2. 请用户在自己浏览器打开目标页 → Ctrl+S 另存为 HTML,或复制页面源码 / 截图;
  3. 用 scripts/extract_page.py 直接解析这份本地 HTML(不发任何网络请求);
  4. 报告里标注来源为"用户提供的页面快照,抓取时间 = 用户提供时间"。

这是用户自身的浏览行为,不是程序抓取,合规上站得住脚。

S3 · 数据标准化与去重

所有房源(法拍 / 国资 / 社会拍卖)归一到统一数据模型(见 references/data-model.md)。强制动作:

  1. 类型与阶段标记:每条标的必须带 listing_type(法拍/国资/社会拍卖)且填充 auction.status(挂牌中/竞价中/已成交/已流标/已结束/即将开始 等)。法拍还需 auction.stage_round(一拍/二拍/三拍/变卖/重新拍卖)。阶段标记缺失时从标题/正文识别,识别不了就留 null(禁止编造)。
  2. 单位归一:价格统一为万元,面积统一为 ㎡,单价保留元/㎡。
  3. 跨平台去重指纹:sha1(城市|小区名|楼栋|面积|户型|楼层|总价)。同一标的在多个平台出现 → 合并为一条,标注各平台来源与差异。
  4. 法拍字段对齐:评估价 / 起拍价 / 保证金 / 加价幅度 / 开拍时间 / 法院 / 清场责任 / 税费承担 / 占用与租赁情况 —— 缺任一项都在报告里显式标红。

S4 · 匹配度评分

硬门槛(不满足直接淘汰):城市、总价上限、面积下限、户型室数、开拍时间窗口。

法拍软评分(100 分制): | 维度 | 默认权重 | 说明 | |------|---------|------| | 价格匹配度 | 25 | 落在预算中位区间得满分,贴近上限线性扣分 | | 面积/户型匹配 | 20 | 面积贴合 + 户型命中 | | 折价率 | 20 | 起拍价/评估价,越低于 0.7 加分越多(+15 封顶) | | 清场/交付风险 | 15 | 未清场 -15 / 税费买受人全担 -10 / 有长期租约 -15 | | 房源真实性/信息完整度 | 10 | 公告与评估附件齐全度 | | 来源可信度 | 10 | 阿里法拍 > 公拍网 > 浏览器档 |

S5 · 交付

输出目录:outputs/auction-{YYYYMMDD}-{需求关键词}/

  • report.md —— 文档版报告(给人看 / 可贴文档)
  • report.html —— 网页版报告(自我包含、响应式、表格清晰可读;与 report.md 同源同内容)
  • listings.json —— 结构化数据,给下游程序用
  • assets/ —— 拍卖公告、评估报告附件(PDF/图片)
  • raw/ —— 原始 HTML 快照(保留 7 天,便于复核)

双版本交付规则(默认生效):只要用户提出房源类需求,每次都必须**同时产出文档版(report.md)+ 网页版(report.html)**两个版本,二者内容一致。网页版须做到:清晰明了、表格带粘性表头且可横向滚动、移动端响应式、重点数字(起拍价/折价率/区域)有视觉区分;禁止花哨堆砌,以"一眼能看懂"为第一标准。

顶部固定提示横幅(默认生效):每份报告(md 与 html alike)最上方固定加一句:注意:如遇收集房源不精确,请直接使用页面末尾的「复问模板」重新提问。(指向报告末尾「复问向导 / 提问模板」)。

报告结构(严格按这个顺序):

  1. 需求回述 + 数据抓取范围(哪些站、哪些页、抓取时间)
  2. 结论摘要:命中 N 套 / 推荐 Top N / 3 条最关键判断
  3. 候选清单表:排名 | 小区/标的 | 面积 | 户型 | 起拍价/评估价 | 折价率 | 法院 | 来源 | 详情链接
  4. 逐套详情卡:基本信息 → 公告/评估附件 → 匹配理由 → 风险与瑕疵 → 同小区比价
  5. 被淘汰但值得说的
  6. 数据可信度声明:各渠道命中数、失败原因、未获取字段清单
  7. 复问向导(提问模板):报告末尾固定附「提问公式」模板(见下方 §2.1),引导用户下次照模板精确提问,减少来回澄清

公告/附件抓取专项:法拍房几乎没有户型图。正确做法是下载《拍卖公告》《评估报告》附件(PDF/长图),户型图和房本信息通常在里面。找不到就写"户型图:未获取,建议联系法院阅卷或实地看样"。

2.1 复问向导模板(每次报告 §7 固定附,原文照搬)

把下面这条「提问公式」填好发我,我就能直接开干、少走弯路。 提问公式 = 指定源 + 明确筛选条件 + 指定产出 + 是否交叉核验

1. 指定源(最重要,因为各源能力不同)

  • 能自动抓:说「阿里法拍 / 公拍网 / 重庆联交所」
  • 不要说「去所有网站找」,而是点名哪几个

2. 明确筛选条件(越具体越好)

  • 地域:重庆市渝中区 / 上海市 / 不限城市
  • 用途:住宅 / 商铺 / 车位 / 厂房
  • 价格:起拍价 50万-200万
  • 面积/户型:90平以上三房

3. 指定产出

  • 只要链接和起拍价(快速筛)
  • 要完整尽调报告(起拍价/评估价/保证金/税费测算/占用风险)
  • 要户型图和公告原文
  • 导出成表格/HTML

4. 是否交叉核验

  • 只在阿里法拍找
  • 三个平台交叉比对同一标的

3. 抓取执行清单(每次任务逐条过)

[ ] 1. 需求卡片已生成并向用户回述
[ ] 2. robots.txt 已检查,目标路径允许抓取(命中域名黑名单的站点不在自动抓取范围,仅人工取证)
[ ] 3. 探针通过:列表页 + 详情页解析模板有效
[ ] 4. 限速已生效(间隔 3-8s,单域名串行;政务站 5-10s)
[ ] 5. 原始 HTML 已落盘 raw/
[ ] 6. 字段提取完成,缺失值标记为 null 而非猜测
[ ] 7. 个人信息字段已过滤
[ ] 8. 跨平台去重与字段对齐完成
[ ] 9. 评分与排序完成
[ ] 10. 公告/评估附件已下载到 assets/
[ ] 11. 报告已生成,含数据可信度声明

4. 失败处理矩阵

| 现象 | 判定 | 处理 | |------|------|------| | 403 / 429 | 被限流 | 立即停止该站,间隔退避(1min → 5min → 放弃),换渠道,报告说明 | | 返回风控页 / 验证码 | 被风控 | 停止,交人工。不尝试绕过 | | 页面结构变化,提取字段为空 | 站方改版 | 进入逆向修正:找新 JSON 键 / 新正则 → 修正提取器 → 回写 playbook | | 结果数为 0 | 条件过严 或 URL 拼错 | 先验证 URL;确为无房则放宽 1 个条件重试一次并说明 | | 详情页能开、图片加载不出 | 图片 CDN 防盗链 | 带 Referer 重试;仍失败则记录"图片:未获取",改用公告附件 | | 详情页要求登录 / robots 全站禁 | 平台限制 | 提示用户在其浏览器登录后重试,或走人工取证模式(用户提供 HTML) |


5. 站点改版自适应

法拍站改版频繁,提取规则不是信仰,是待验证的假设。

每次探针失败后:

  1. 用 agent-browser 打开目标页,导出页面内所有 <script> 中的 JSON 顶层键名(阿里法拍)或检查正文结构(公拍网);
  2. 定位新字段路径 / 新正则;
  3. 用新路径修正 scripts/extract_page.py 的映射表;
  4. 把变更写回 references/site-playbook.md 的「实测修正区」。

这样技能会越用越准。


6. 法拍房专项(必读)

法拍不是"便宜的二手房",是另一种风险资产。涉及法拍需求时必须:

  1. 加载 references/legal-auction.md;
  2. 报告中必须包含尽调清单与真实成本测算(成交价 + 税费 + 欠费 + 清场成本),不能只报起拍价;
  3. 明确给出这三条硬提示:
    • 法院只对标的物的权利现状负责,通常不负责清场交付,"交不交得出来"是买受人的风险;
    • 税费承担主体看公告,常见"一切税费由买受人承担",需提前测算;
    • 限购政策适用:法拍房在多数限购城市同样受限购约束,需先确认购房资格。
  4. 一句话结论必须有:这套房的综合成本 / 同小区市场价 比值,> 0.95 就明确建议"不值得拍"。

7. 与其他技能的关系

  • 涉及浏览器渲染 / 截图 / 交互 → 加载 agent-browser 技能。
  • 涉及公司主体尽调(法拍房源背后的企业被执行人)→ 可结合 enterprise-report / 企查查连接器。
  • 涉及法条 / 政策解读 → 提示用户自查中国执行信息公开网、各省市高院官网(涉及个人信息仅提示,不采集入库)。

8. 脚本使用

全部为 Python 标准库实现,无第三方依赖。使用托管 Python: C:\Users\86159\.workbuddy\binaries\python\versions\3.13.12\python.exe

# —— 阿里法拍(已验证自动可用)——
python scripts/fetch_page.py \
  --url "https://sf.taobao.com/item_list.htm?category=50025969&page=1" --out raw/sf_p1.html
python scripts/extract_page.py --html raw/sf_p1.html --site ali-auction --out listings.json

# —— 公拍网 详情页(已验证自动可用)——
python scripts/fetch_page.py \
  --url "https://www.gpai.net/sf/item2.do?Web_Item_ID=53006" --out raw/gpai_1.html
python scripts/extract_page.py --html raw/gpai_1.html --site gpai \
  --out gpai_1.json --base-url "https://www.gpai.net/sf/item2.do?Web_Item_ID=53006"

# 下载公告 / 评估附件
python scripts/download_assets.py --json listings.json --dir assets/

9. 性能优化模块(2026-09-07 重构 · 提速 + 提准)

旧流程痛点:每页都 fork 2 次 Python 子进程(fetch_page.py + extract_page.py), 40 页纯进程开销 ~29s;且手工串联易漏抓、易混入「外地同名区」(如把重庆北碚「北京路」误判为北京)、 易把车位/商铺当作住宅。本次重构新增以下模块,速度 + 准确度双提升。

9.1 一键编排(推荐入口)

# 一行完成:阿里批量抓 + 联交所已有命中并入 + 标准化 + 评分 + 双版本报告
python scripts/run_search.py \
  --config req.json \
  --out-dir outputs/auction-YYYYMMDD-关键词 \
  --ali-pages 40 \
  --cquae-hits raw/cquae_jb_yb_all.json   # 可选:跳过浏览器扫站,直接并入已有联交所命中

req.json 字段:city / districts[] / price_min_wan / price_max_wan / residential / sources{ali,cquae,gpai} / budget_include_tax / top_n。

9.2 提速模块

| 模块 | 作用 | 提速点 | |------|------|--------| | scripts/batch_ali.py | 阿里法拍批量抓取 + 进程内解析(复用 extract_listings),含页面缓存、早停、可调限速 | 去掉每页 2 次子进程;单进程 40 页解析开销从 ~29s 降到 ~1s | | scripts/browser_sweep.sh | 浏览器驱动的扫站器(联交所等 SPA),空块自动重试 | 修复旧流程「静默丢数据」(翻页后函数丢失 / 跨域 fetch 打错站) | | scripts/benchmark.py | 速度基准(旧子进程 vs 新进程内) | 量化加速比,回归用 |

基准实测(2026-09-07,样本为阿里列表页 267KB):

  • 解析加速比 11.2x(0.358s/页 → 0.032s/页,纯 Python 开销)
  • 含抓取子进程的全链路:40 页进程启动开销节省 ~96%
  • 另加:页面级缓存(24h 同源不重抓)+ 早停(连续 N 页无命中则停)

9.3 提准模块 scripts/ph_core.py(准确度核心)

| 能力 | 解决的问题 | 状态 | |------|-----------|------| | clean_text() | HTML 实体 / 全角字符 / 空白污染 | ✅ | | match_district(title, city, districts) | 城市感知的区县匹配:拒绝「外地同名区」(重庆北碚「北京路」≠ 北京市);需城市前缀或标题以区名开头 | ✅ 自检通过 | | is_residential(title) | 剔除车位/车库/商铺/办公/厂房/仓库/负楼层 | ✅ | | dedup_by_fingerprint() | 跨源 / 跨页去重指纹 | ✅ | | score_listing() | 统一评分(价格匹配 / 折价 / 住宅 / 阶段) | ✅ |

ph_core.py --self-test 覆盖上述全部用例;外地同名区误判 与 非住宅漏筛 两类旧 bug 已被该模块从根上消除。

9.4 报告生成 scripts/gen_reports.py

run_search.py 产出的 listings.json({meta, listings} 结构,每条含 fingerprint/source/district/start_price_wan/eval_price_wan/discount_pct/round_guess/score 等)→ 同源生成 report.md + report.html。双版本内容一致,符合 §2.5 双版本交付规则。

⚠️ 调用约定:batch_ali.py / run_search.py 通过 import + sys.argv 注入方式复用 extract_page.extract_listings(), 不要在子进程里再 fork extract_page.py(会丧失提速收益)。

fetch_page.py 退出码:0 成功 / 2 被拦截(交人工)/ 3 robots 禁止或命中域名黑名单 / 4 网络失败 / 6 需浏览器渲染。 extract_page.py 退出码:0 成功 / 5 未找到可提取内容(需浏览器渲染或改版)。

--no-robots 的授权使用场景已取消:命中域名黑名单的站点已彻底关闭自动抓取路径,脚本对该域名硬拦截(退出码 3 DOMAIN_DENIED),加 --no-robots 也无效。 download_assets.py 对该域名的附件同样跳过下载并提示人工获取。静默加 --no-robots 属于违规操作。

详细站点规则见 references/site-playbook.md,数据模型见 references/data-model.md。