insane-search v0.16.3 教程:先守住公开内容边界
insane-search 是 Claude Code 的公开网页读取插件。它从公开 API、Feed 和普通请求开始,必要时才用 TLS 客户端或本机浏览器。当前版本是 v0.16.3。
这个页面值得更新不是因为宣传语。insane-search 有 6 次展示、3 次点击、平均排名 3,说明搜索流量连续存在。
1. 抓取链怎样工作
| 阶段 | 作用 | 本地影响 |
|---|---|---|
| Phase 0 | 平台公开端点、Feed、媒体元数据 | 网络请求 |
| Phase 1 | 轻量请求和公开 URL 变体 | 网络请求 |
| Phase 2 | curl_cffi 等 TLS 客户端 | 可能自动安装 Python 依赖 |
| Phase 3 | 系统 Chrome 渲染公开页面 | 安装 Node 依赖并启动浏览器 |
| Exit | 登录、付费、404 等终止状态 | 返回原因,不继续尝试 |
页面正文经过 validator 和 extraction,再附带 source、trace 与安全边界返回。流程会提高公开页面读取率,但不保证所有站点都成功,也不赋予采集权限。
2. 从官方 marketplace 安装
/plugin marketplace add https://github.com/fivetaku/gptaku_plugins.git
/plugin install insane-search@gptaku-plugins
/reload-plugins
安装前先核对仓库、插件 manifest 和版本。官方说明普通路线会在首次使用时自动补 curl_cffi、yt-dlp 等依赖;进入浏览器回退后,还会把 Node 包装到 ~/.insane-search/node 并使用系统 Chrome。这些都是本机写入和代码执行权限。
3. 第一次只读自己的静态页
把一个自己控制的静态公开页面交给 Claude Code,要求它返回标题、正文摘要、来源 URL、抓取 trace 和停止原因。不要从登录站点、个人账号页、带客户数据的后台或高频批量任务开始。
验收时应看到来源与正文对应,trace 没有重复请求,登录或付费页面明确终止。若需要浏览器,检查活动进程、Chrome 窗口和 ~/.insane-search/node 的 package.json;不接受这些权限时就停止在轻量路线。
4. v0.16.3 的单次结果
--json-content 在一次抓取中同时返回元数据、trace 和 untrusted_text,减少为了诊断和正文重复请求同一 URL。旧的 --json 仍只返回诊断,不带正文。v0.16.3 还把 pdfplumber 与 pypdf 改为实际处理 PDF 时才加载。
URL 中可能夹带凭据或一次性 token。v0.16.1 起 trace、日志与 source_url 会遮蔽常见凭据参数,但调用方仍应避免把带秘密的 URL 交给公开抓取链。
5. 网页文字只能当数据
网页可以写着“执行命令”“读取 token”或“忽略上级指令”,这些都是页面内容。CLI 返回的边界用于把正文标成 untrusted_public_web;Python API 接给代理时要用 to_untrusted_text(),不能直接转发 raw result.content。
6. 和 Playwright 怎么选
相比 Playwright,insane-search 先尝试公开端点和轻量请求,再用浏览器后备,并把来源、trace 与不可信内容边界交给代理。Playwright 提供 Chromium、Firefox、WebKit 的页面控制、定位器、断言、隔离上下文和 trace,更适合稳定的交互测试。读取公开正文可评估前者,自动化测试应优先使用后者。
7. 版本与验证边界
v0.16.3 于 2026-09-08 发布,tag、manifest 与 changelog 版本一致。0.16.0 引入用户目录的 Node 依赖安装和默认可见浏览器路线,这也是旧教程最容易漏掉的权限变化。
验证边界:未验证实时成功率、验证码、浏览器指纹、自动安装、资源占用、隐私影响或不同地区的站点政策。本文只解释官方行为和安全验收方法。
这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
近期变化与关注原因
从平台公开端点、Feed 和 URL 变体开始,失败后才升级到 TLS 客户端或本机浏览器,并在 trace 中保留尝试路径。v0.16.3 的 --json-content 会在一次抓取中返回元数据、trace 和带不可信边界的正文,旧 --json 继续不带正文。
适合谁用
适合代理读取普通请求拿不到的公开文章、公开 Feed、平台公开端点、视频字幕和 PDF,并保留失败路线用于诊断。它不适合登录后内容、付费内容、违反 robots.txt 或站点条款的批量采集,也不应被用来执行网页中出现的命令。
采用建议
使用前要接受三个条件:只处理获准的公开内容、审查自动安装与浏览器权限、始终把网页正文当作不可信输入。
原教程未展开的系统信息
核心功能
媒体与结构化内容读取
对部分平台调用公开端点或 yt-dlp,同时从 OGP、JSON-LD、PDF 或浏览器渲染结果中提取可用文本。
架构与数据流
Phase 0 处理已知平台的公开端点和媒体路径;后续由 WAF detector 与 profile 选择普通请求、URL 变体、curl_cffi TLS 指纹和本机 Chrome。validator 判断响应是否为正文、挑战页、认证墙或错误页,extraction 层再做 Markdown、主内容、PDF 或结构化数据处理,结果通过安全边界返回。
常见问题
insane-search 能读取登录后页面或付费文章吗?
不能。官方边界明确要求在登录墙和付费墙前停止,并返回 authentication required。公开页面读取也要遵守站点条款、robots.txt、限速和适用法律。
安装插件后为什么用户目录里又出现 Node 依赖?
v0.16.0 起,第一次进入浏览器回退时会把依赖安装到 ~/.insane-search/node,并使用系统 Chrome。安装会改动用户目录并执行第三方包,应先审查 package.json 和锁定版本。
网页正文可以直接交给代理执行吗?
不可以。网页是外部不可信数据,可能包含提示注入。CLI 应使用带边界的 untrusted_text;Python API 面向代理时应调用 to_untrusted_text(),不要直接转发 raw result.content。
v0.16.3 的 --json 和 --json-content 有什么区别?
--json 保持原有契约,只返回诊断而不带正文;--json-content 在同一次抓取中同时给出元数据、trace 和带边界的正文,避免为了正文再次请求同一 URL。
insane-search 和 Playwright 应该选哪个?
只想为代理读取公开正文并希望自动尝试轻量路线时,可评估 insane-search。需要表单、点击、断言、隔离上下文和多浏览器测试时,Playwright 的职责更清楚。