1. Windows 上跑 OpenClaw 到底卡在哪:新手部署 AI 爬虫的真实场景
如果你在 Windows 上搜「OpenClaw 部署」「AI 爬虫 零基础」,大概率会看到两种极端:一种是官方文档里几行命令就带过,另一种是论坛里一堆node-gyp报错、端口占用、token 找不到的求助帖。我这次把整条链路重新走了一遍,目标很明确——让一个没碰过 Node.js 的人,也能在 Windows 10/11 上把 OpenClaw 跑起来,并且真的抓一次数据出来。
先说清楚 OpenClaw 是什么。它不是那种装完就给你一个黑框框的命令行工具,而是一个带 Web 交互界面的 AI 爬虫网关:你在浏览器里输入一句「帮我抓某新闻站前 10 条标题和链接」,它背后会调用大模型理解你的意图,再驱动内置浏览器引擎去访问页面、提取内容、结构化输出。适合谁?适合想快速验证「AI + 爬虫」玩法的新手、需要做数据采集原型的产品同学,以及不想从零写 Playwright 脚本的开发者。
Windows 环境有几个坑必须先摆出来。第一,Node.js 版本太低会导致依赖装不上,官方推荐 v20 及以上,我实测 v18 在部分包上会报EBADENGINE。第二,npm 默认源在国内拉包慢到怀疑人生,必须换镜像。第三,OpenClaw 初始化时会拉起一个本地网关服务,默认端口 18789,如果被占用,浏览器就打不开。第四,访问地址里带 token,很多人复制的时候漏掉#token=后面那串,结果页面一直转圈。
这篇的节奏是这样:先把 Node.js 和镜像源搞定,再装 OpenClaw 并初始化,然后接上大模型服务(这里我用 TaoToken 作为模型接入层,因为它兼容 OpenAI 协议,配置简单),最后跑一次真实抓取任务验证。每一步都有可复制的命令和配置片段,遇到报错直接对照第 5 节排查。
我试过在一台 8G 内存的 Windows 虚拟机上跑,只要不开太多浏览器标签,整个流程是流畅的。下面从环境准备开始。
2. 装 OpenClaw 前先把 Node.js 和 TaoToken 接入层准备好
这一节解决两个前置问题:Windows 上的 Node.js 环境,以及 OpenClaw 调用大模型时需要的 API 接入配置。很多人卡在第一步,其实是没搞清楚 OpenClaw 的架构——它本身不生产模型能力,而是把用户的自然语言指令转发给大模型,再把模型返回的结构化指令翻译成浏览器操作。所以你必须给它配一个能用的模型 API。
2.1 Node.js 安装与版本校验
去 Node.js 官网下载 LTS 版本,写这篇文章时 v20 是稳妥选择。安装时勾选「Add to PATH」,装完打开 PowerShell 验证:
node -v npm -v正常输出类似v20.11.1和10.2.4。如果node -v报「不是内部或外部命令」,说明 PATH 没生效,重启终端或者手动把 Node 安装目录加进系统环境变量。
2.2 配置 npm 镜像源
默认源拉包慢,先换国内镜像:
npm config set registry https://registry.npmmirror.com npm config get registry第二条命令应该返回https://registry.npmmirror.com/。如果公司网络有代理限制,这一步可能失败,那就换 cnpm 方案,后面会讲。
2.3 TaoToken 接入层配置
OpenClaw 初始化时会让你选模型提供商。为了让配置更可控,我建议先把 TaoToken 的 API Key 准备好。TaoToken 是一个兼容 OpenAI 协议的大模型接入服务,你可以在它的控制台创建 Key,然后拿到 Base URL 和 Model ID。
具体操作:访问 TaoToken 控制台(https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite),登录后进入 API Keys 页面创建一个新 Key。创建时注意权限范围,新手选默认的对话权限就够。Key 格式通常是sk-开头的一串字符,复制后先存到记事本,因为页面刷新后就不再完整显示。
然后确认你要用的模型 ID。TaoToken 支持多种模型,OpenClaw 场景下建议选指令跟随能力强的,比如gpt-4o-mini或claude-3-5-sonnet这类。Model ID 在模型列表页能看到,直接复制。
到这里你手里应该有三样东西:Base URL(一般是https://taotoken.net/api)、API Key、Model ID。这三件套在下一节初始化时会用到。如果你还没决定用哪个模型,可以先打开模型对话页(https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite)试一句「你好」,确认 Key 能正常调用再继续。
注意:API Key 不要直接写进会提交到 Git 的配置文件里。OpenClaw 的配置文件在用户目录下,本地使用问题不大,但养成好习惯。
环境准备好之后,就可以装 OpenClaw 本体了。
3. 可复制的 OpenClaw 安装与 openclaw.json 配置片段
这一节是全文的核心操作区。我会给出完整的安装命令、初始化流程,以及最关键的openclaw.json配置文件写法。你照着复制粘贴,改掉 Key 和 Model ID 就能用。
3.1 全局安装 OpenClaw
在 PowerShell 里执行:
npm install -g openclaw@latest如果这一步卡住或者报网络错误,换 cnpm:
npm install -g cnpm --registry=https://registry.npmmirror.com cnpm install -g openclaw@latest装完后验证:
openclaw --version能输出版本号就说明安装成功。如果报「openclaw 不是内部或外部命令」,检查 npm 全局 bin 目录是否在 PATH 里,可以用npm config get prefix看路径,然后手动加进环境变量。
3.2 初始化并部署服务
执行初始化命令:
openclaw onboard --install-daemon这个命令会启动一个交互式引导。流程大致是:
第一步,选择「快速开始」模式。第二步,选择模型提供商。这里如果你要用 TaoToken,选「自定义 OpenAI 兼容」或者「OpenAI」这类选项,然后把 Base URL 填成https://taotoken.net/api。第三步,粘贴你的 API Key。第四步,填 Model ID,比如gpt-4o-mini。第五步,跳过高级配置(技能插件、自定义参数这些后面再补)。
引导完成后,OpenClaw 会自动启动网关服务,并在终端打印访问地址,格式类似:
http://127.0.0.1:18789/#token=xxxxxxxx把这整串地址复制到浏览器打开,就能看到 OpenClaw 的 Web 界面。注意#token=后面那串必须完整,漏掉就打不开。
3.3 手动编辑 openclaw.json
如果你在引导里填错了,或者想换模型,可以直接改配置文件。路径在:
C:\Users\<你的用户名>\.openclaw\openclaw.json用记事本或 VS Code 打开,结构大概是这样:
{ "model": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的Key", "modelId": "gpt-4o-mini" }, "gateway": { "port": 18789, "host": "127.0.0.1" }, "agents": { "main": { "sessionsDir": "C:\\Users\\<你的用户名>\\.openclaw\\agents\\main\\sessions" } } }改完保存,重启服务生效。这里三个字段必须对齐:baseUrl指向 TaoToken 的 API 地址,apiKey是你的 Key,modelId是模型 ID。少一个或者写错,请求就会失败。
3.4 手动重启服务
如果服务挂了或者你改了配置,用这条命令重启:
openclaw gateway --port 18789 --verbose--verbose会打印详细日志,排查问题时很有用。正常启动后终端会显示监听地址,浏览器重新访问即可。
配置到这一步,OpenClaw 已经具备调用模型的能力了。下一节我们发一个真实请求验证。
4. 发一条抓取指令验证 OpenClaw 是否真的跑通
部署完不验证等于没部署。这一节我用一个具体的抓取任务,带你确认整条链路——从浏览器输入指令,到模型理解,到浏览器引擎执行,再到结果返回——是否通畅。
4.1 打开 Web 界面并确认连接状态
浏览器访问初始化时打印的地址,比如:
http://127.0.0.1:18789/#token=你的token页面加载后,左下角或设置里一般会显示当前模型连接状态。如果显示「已连接」或绿色指示灯,说明 OpenClaw 已经成功连上 TaoToken 的 API。如果显示红色或报错,先跳到第 5 节排查。
4.2 输入抓取指令
在对话框里输入:
请帮我爬取某新闻网站的前 10 条新闻标题和链接,输出成表格把「某新闻网站」换成你实际想抓的站点。OpenClaw 会做几件事:先把你的自然语言发给模型,模型返回一个结构化的抓取计划(访问哪个 URL、提取哪些字段、用什么选择器),然后 OpenClaw 驱动内置浏览器引擎执行,最后把结果整理成表格返回。
4.3 观察执行过程与结果
执行时终端会打印日志,类似:
[gateway] received task: crawl news [agent] planning with model gpt-4o-mini [agent] navigating to https://example.com/news [agent] extracting 10 items [gateway] task completed浏览器界面里会逐步显示抓取进度,最后返回一个表格,包含标题和链接两列。如果结果为空或者报错,看下一节。
4.4 用 API 方式验证(可选)
如果你更习惯命令行,也可以直接调 TaoToken 的 API 确认模型侧正常:
curl https://taotoken.net/api/v1/chat/completions ` -H "Content-Type: application/json" ` -H "Authorization: Bearer sk-你的Key" ` -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"你好"}]}'返回里有choices字段就说明 Key 和模型都正常。这一步能帮你区分是 OpenClaw 的问题还是模型接入的问题。
抓取任务成功返回表格,就说明部署完整跑通了。接下来把常见报错整理一下。
5. OpenClaw 常见报错排查:401、local proxy failed、reading choices
这一节按真实报错来。你在 Windows 上部署 OpenClaw,大概率会遇到下面几类问题。我按报错信息分类,给出原因和解决步骤。
5.1 401 Unauthorized
报错长这样:
Error: 401 Unauthorized {"error":{"message":"Invalid API key"}}原因通常是 API Key 填错、过期,或者 Base URL 和 Key 不匹配。排查步骤:打开openclaw.json,确认apiKey字段是完整的sk-开头字符串,没有多余空格;确认baseUrl是https://taotoken.net/api,不要多加/v1或者少写。如果 Key 是在别的平台创建的,拿到 TaoToken 用也会 401,因为 Key 不通用。重新在 TaoToken 控制台创建一个新 Key,替换后重启服务。
5.2 local proxy failed
报错:
Error: local proxy failed, check your network这个多半是本地网络或端口问题。先确认 18789 端口没被占用:
netstat -ano | findstr 18789如果有输出,说明端口被别的进程占了,改openclaw.json里的gateway.port为其他值,比如 18790,然后重启。如果端口没占用,检查 Windows 防火墙是否拦了 Node.js 的网络访问,在防火墙设置里给 Node.js 放行。
5.3 reading choices 相关报错
报错:
TypeError: Cannot read properties of undefined (reading 'choices')这是模型返回结构不符合预期。常见原因:Model ID 写错,比如把gpt-4o-mini写成gpt4o-mini;或者 Base URL 指向了一个不兼容 OpenAI 协议的端点。解决方法是先用 4.4 节的 curl 命令单独测模型接口,确认返回里有choices数组。如果 curl 正常但 OpenClaw 报错,检查openclaw.json里provider字段是否写成了openai-compatible。
5.4 OAuth 授权失败
如果你在初始化时选了需要 OAuth 的提供商,浏览器弹窗授权后回调失败,报:
OAuth callback failed: redirect_uri mismatch这种情况建议改用 API Key 方式接入,也就是本文推荐的 TaoToken 方案,不依赖 OAuth 回调,配置更简单。在openclaw.json里把provider改成openai-compatible,填 Base URL、Key、Model ID 三件套即可。
5.5 服务启动后浏览器打不开
地址栏输入后一直转圈或者提示无法连接。先确认终端里服务确实在运行,--verbose模式下有没有报错。然后确认你访问的地址和终端打印的完全一致,包括端口和 token。如果是在虚拟机里跑,注意127.0.0.1只能虚拟机内部访问,宿主机要用虚拟机的 IP。
5.6 抓取任务返回空结果
模型连接正常,但抓取结果为空。原因可能是目标网站有反爬、需要登录,或者页面结构和你描述的不匹配。换一个简单的静态页面测试,比如抓某博客首页的标题。如果简单页面能抓,说明是目标站点的问题,需要调整指令或者加等待时间。
排查完这些,基本能覆盖 90% 的新手问题。最后说下长期使用和进阶方向。
6. 长期跑 OpenClaw 的接入配置与 Coding Plan 选择
部署跑通只是开始。如果你打算把 OpenClaw 当成日常的数据采集工具,或者想在上面做更复杂的 Agent 任务,有几个方向可以深入。
第一,把模型接入配置固化下来。openclaw.json里的三件套(Base URL、API Key、Model ID)建议单独记一份,换机器或者重装时直接复制。TaoToken 的 API Keys 页面(https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite)可以管理多个 Key,给不同用途分配不同 Key,方便排查和轮换。
第二,如果你要频繁做编码类任务,比如让 OpenClaw 生成抓取脚本、调试选择器,可以考虑 TaoToken 的 Coding Plan(https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite)。它针对代码场景做了优化,在长上下文和指令跟随上有更好的表现。OpenClaw 的抓取计划生成本质上也是代码生成,用 Coding Plan 会更稳。
第三,OpenClaw 支持技能插件和自定义参数,你可以在openclaw.json里扩展agents配置,给不同任务配不同的模型。比如简单抓取用便宜的模型,复杂页面解析用能力强的模型。具体配置参考接入文档(https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite),里面有完整的字段说明。
第四,如果你用 Claude Code 或者类似工具做开发,TaoToken 也提供了对应的接入方式(https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite),Base URL 和 Key 的用法和 OpenClaw 一致,配一次可以多处复用。
最后给一个实用技巧:OpenClaw 的会话存储目录在C:\Users\<用户名>\.openclaw\agents\main\sessions,里面是对话历史和上下文数据。定期清理旧会话可以避免磁盘占用过大,也能让新任务启动更快。如果抓取任务经常重复,可以把成功的指令存成模板,下次直接改 URL 就行。
到这里,从 Node.js 安装到抓取验证的完整链路就结束了。你手上应该有一个能跑的 OpenClaw,一个配好的 TaoToken 接入,以及一份排错清单。剩下的就是拿它去抓你真正需要的数据了。