Manusで任意のスキルを実行
ワンクリックで
ワンクリックで
ワンクリックでManusで任意のスキルを実行
始める$pwd:
xrk-crawl
// 当你需要开发/排查 HTTP 抓取、SSRF、Playwright 受控浏览器、本地字体增强截图,或判断 web_fetch 与 browser 工作流如何选型时使用。
$ git log --oneline --stat
stars:139
forks:16
updated:2026年5月30日 15:49
SKILL.md
// 当你需要开发/排查 HTTP 抓取、SSRF、Playwright 受控浏览器、本地字体增强截图,或判断 web_fetch 与 browser 工作流如何选型时使用。
当你需要开发/调试 AIStream 工作流、RAG 上下文增强、子服务端回退逻辑、MCP 工具注册与作用域控制时使用。
当你需要从“应用视角”看 XRK-AGT(启动流程、Web 控制台、前后端协作、典型技术栈组合)时使用。
当你需要解释/排查 HTTP 或 WebSocket 的 401、127 回环例外、API Key 机制时使用;确保业务层不重复鉴权。
当你需要理解 XRK-AGT 的运行时核心(Bot 主类)、事件总线、HTTP/WS 启动流程与全局对象时使用。
当你需要复用日志/缓存/文件/网络/批处理等基础能力,或为新模块选择合适的工具函数时使用。
当你需要新增/调整配置字段、确保 YAML 与 commonconfig schema 与代码消费一致、或解释配置路径规则时使用。
| name | xrk-crawl |
| description | 当你需要开发/排查 HTTP 抓取、SSRF、Playwright 受控浏览器、本地字体增强截图,或判断 web_fetch 与 browser 工作流如何选型时使用。 |
core/system-Core/lib/crawl/index.js — 插件、stream、HTTP 业务只从这里 import。
import {
fetchWithPolicy,
runWebFetch,
buildWebFetchRuntime,
assertUrlSafeForFetch,
PlaywrightAgentSession,
createLocalFontScreenshotHelper,
DEFAULT_DEVICE_SCALE_FACTOR,
DOM_TWEAK_LABEL_COLON_HALF,
} from '../lib/crawl/index.js'
| 场景 | 能力 | 实现文件(均在 lib/crawl/) |
|---|---|---|
| 简单 API / 无需 JS 渲染 | fetchWithPolicy | 经 ../net/fetcher.js 导出 |
| 正文提取、Readability、Firecrawl | runWebFetch | web-fetch-executor.js |
MCP web_fetch | stream/web.js | 内部用 crawl |
| JS 渲染、交互、截图 | PlaywrightAgentSession | playwright-session.js |
| MCP 受控浏览器 | stream/browser.js | browser_* 工具 |
| 截图字体/样式与线上一致 | createLocalFontScreenshotHelper | page-screenshot-enhance.js |
选型:HTTP 能拿正文 → runWebFetch;要渲染或 PNG → Playwright。
ssrf-guard.js:assertUrlSafeForFetch、SsrFBlockedErrorPlaywrightAgentSession.goto 与 runWebFetch 共用assertUrlSafeForBrowserNavigation| 方法 | 说明 |
|---|---|
PlaywrightAgentSession.launch(options) | 默认 deviceScaleFactor=2 |
PlaywrightAgentSession.using(options, fn) | 自动 close |
attachScreenshotHelper(helper) | 挂载增强截图助手 |
goto(url, { waitUntil, timeoutMs }) | 导航(含 SSRF) |
gotoAndCapture(url, { selector, settleMs, ... }) | prepare→goto→等待→截图 |
captureRegion(selector) | 区域截图 |
regionText(selector) | 区域 innerText |
lib/crawl/
index.js # 对外唯一入口
ssrf-guard.js
web-fetch-executor.js
web-fetch-utils.js
web-fetch-visibility.js
web-shared.js
external-content-wrap.js
playwright-session.js
page-screenshot-enhance.js
lib/net/fetcher.js # 通用 HTTP(超时/重试/代理),由 crawl 再导出
stream/web.js → web_fetchstream/browser.js → browser_*(browser_screenshot 支持 selector)lib/crawl/ 内并在 index.js 导出,不要新建仅 re-export 的包装文件。using + gotoAndCapture,勿手写四段截图流程。lib/net/fetcher.js、web-fetch-executor.js 已用全局 fetch + AbortSignal.timeout;扩展时沿用,禁止 node-fetch。toBase64() / Uint8Array.fromBase64(),勿 toString('base64')。Error.isError / normalizeError(skill xrk-node-runtime)。docs/system-core.md(web / browser 章节)core/system-Core/plugin/lkwg.js