SuperAPI AI 工具集

cloak-fetch

数据与分析

查看项目

更新于 10-15 19:52

技能介绍

用途:当普通 HTTP 抓取工具被反爬或 WAF 拦截时作为回退方案。它把同一 URL 交给 CloakBrowser(内置 C++ 级反爬补丁、真实 TLS/JA3 指纹的 Chromium)加载,再由 trafilatura 提取正文,输出干净 Markdown,避免直接告诉用户“页面无法抓取”。

触发时机:普通抓取出现 HTTP 403/429、正文为空或仅几百字节、只剩 JS 挑战脚本的空壳页、Access denied/Blocked、net::ERR_HTTP2_PROTOCOL_ERROR 等;或出现 Cloudflare、DataDome、Akamai Bot Manager、PerimeterX/HUMAN、Imperva/Incapsula、F5/Distil、Kasada、AWS WAF、Sucuri 等厂商的典型特征串与 cookie;以及已知处于此类防护后的站点(出版、新闻、零售、旅行、金融等),可直接使用以避免无效往返。

不适用:404、500、401/登录墙、纯网络错误(DNS、连接被拒)、需要交互的验证码(滑块、图片网格、Turnstile 复选框、hCaptcha 挑战)、因 IP 地区导致的地理封锁、需要会话 cookie/OAuth/签名 URL 的场景,以及普通抓取已成功的情况。这些应如实报告失败。

使用方式:一条命令即可,包装脚本会挑选可用的 Python、运行无头浏览器、提取正文并把 Markdown 写到 stdout: <SKILL_DIR>/cloak_fetch.sh "<URL>" 常见安装位置:Claude Code 为 ~/.claude/skills/cloak-fetch,OpenClaw 为 ~/.openclaw/skills/cloak-fetch,Codex 为 ~/.codex/skills/cloak-fetch,项目内为 .claude/skills/cloak-fetch 或 skills/cloak-fetch。可用循环查找并调用: for d in
"$HOME/.claude/skills/cloak-fetch"
"$HOME/.openclaw/skills/cloak-fetch"
"$HOME/.codex/skills/cloak-fetch"
".claude/skills/cloak-fetch"
"skills/cloak-fetch"; do if [ -x "$d/cloak_fetch.sh" ]; then SKILL_DIR="$d"; break fi done

"$SKILL_DIR/cloak_fetch.sh" "https://www.science.org/content/page/information-authors-research-articles"

行为与限制:默认无头运行,单次约 20–40 秒;输出为 trafilatura 提取的 Markdown,保留标题、列表、链接、代码块,去除导航、广告和 cookie 横幅;若无法定位正文节点则回退输出渲染后的 HTML。若找不到带 cloakbrowser 的 Python、浏览器无法访问 URL 或未能通过挑战,脚本以非零退出并在 stderr 报错,应如实告知用户,不得编造页面内容。

配置:环境变量 CLOAKBROWSER_PYTHON 指定安装了 cloakbrowser 的 Python 路径,默认 ~/github/CloakBrowser/.venv/bin/python,回退 python3。更细的调优(无头开关、内容选择器等待列表、稳定等待时间)需直接编辑 cloak_fetch.py。相关项目 cloakFetch hook 以 Claude Code PostToolUse 钩子实现同样的自动回退,适合有钩子系统的代理;无钩子系统的代理使用本技能。