尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
让 Claude Code 帮你写爬虫:2026 年的「Agent 原生」数据采集
1. 为什么 Claude Code 写的爬虫总是「跑一次就废」先说结论Claude Code 写爬虫的能力没问题问题出在它拿不到原料。我试过让它抓某电商搜索结果页十几秒就吐出一个结构干净的文件——requests 拿页面、BeautifulSoup 选节点、随机 sleep、异常重试、User-Agent 轮换、CSV 导出一应俱全。然后我运行它返回 403 Access Denied那串 Reference # 后面跟着 CDN 边缘节点的域名。翻译成人话请求连目标服务器都没摸到在 CDN 那一层就被扔了Claude Code 写的选择器一行都没来得及执行。这不是模型能力问题是链路问题。写一个能上生产的采集流程大概四件事分析页面结构写选择器、绕过反爬拿到 HTML、处理验证码和 JS 渲染、网站改版后自愈。Agent 唯一擅长的是第一件而第一件恰好是整条链路里最不值钱的。真正贵的是 IP 池、渲染集群、验证码处理以及改版之后没完没了的维护。你给再强的模型也一样它手里没有住宅 IP没有真实浏览器环境。所以思路得换别让 Agent 自己去硬刚基础设施给它一双能直接调用基础设施的手。这篇要做的就是这件事——在本地settings.json里把 TaoToken 配成统一 Key/API 通道让 Claude Code 作为 Agent 编排采集任务自动生成脚本、调用通道、回传结构化数据。适合已经会用 Claude Code 写代码、但被反爬卡在演示阶段的开发者。下面从零跑通一次端到端采集。2. TaoToken 前置统一 Key 与 API 通道TaoToken 在这里的角色是「统一入口」你不需要在 Claude Code 里散落多个厂商的 Key也不用为每个模型单独改环境变量。它把模型对话、Coding Plan、API 调用收敛到一套 Key 和一条 API 通道上Claude Code 通过本地配置指向它后续 Agent 生成脚本、发起请求、回传数据都走同一条链路。官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基址不加 UTMhttps://taotoken.net/api你需要提前准备两样东西一个可用的 API Key以及确认 Claude Code 已经装好并能正常启动。Key 在控制台的 API Keys 页面创建创建后只显示一次复制到本地安全位置。如果你还没建过 Key直接去这个页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注意Key 不要写进会提交到 Git 的文件里。下面的settings.json建议放在用户级配置目录或者用环境变量注入别硬编码进项目仓库。如果你更想先验证模型通道是否通可以先用模型对话页面发一条消息确认https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content长期做编码和 Agent 任务的话Coding Plan 更划算额度模型和按次调用不一样https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content3. 可复制的 settings.json 骨架Claude Code 读取配置的优先级是项目级.claude/settings.json 用户级~/.claude/settings.json。做采集任务我建议用项目级因为不同项目的采集目标、Collector ID、审批策略都不一样放项目里好管理。先建目录和文件mkdir -p .claude touch .claude/settings.json然后把下面这份骨架填进去。注意env里的ANTHROPIC_BASE_URL指向 TaoToken 的 API 基址ANTHROPIC_AUTH_TOKEN用你的 Key。字段名保持原样不要自己改。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的Key粘贴在这里, ANTHROPIC_MODEL: claude-sonnet-4-5, ANTHROPIC_SMALL_FAST_MODEL: claude-haiku-4-5 }, permissions: { allow: [ Bash(python:*), Bash(pip:*), Bash(curl:*), Bash(cat:*), Bash(ls:*), Read(./**), Write(./data/**) ], deny: [ Bash(rm -rf:*), Bash(git push:*) ] }, includeCoAuthoredBy: false }几个字段说明一下。ANTHROPIC_MODEL是主模型负责生成采集脚本和推理页面结构ANTHROPIC_SMALL_FAST_MODEL是轻量模型处理一些快速判断比如字段映射、格式转换能省额度。permissions.allow里我放开了python、pip、curl和读写data/目录因为采集脚本要跑、要装依赖、要落盘。deny里挡掉rm -rf和git push防止 Agent 误操作。如果你不想把 Key 写死在文件里可以改成环境变量引用{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: ${TAOTOKEN_API_KEY} } }然后在 shell 里export TAOTOKEN_API_KEYsk-xxx。这样配置文件可以进版本库Key 留在本地环境。配置写完后在项目根目录建一个CLAUDE.md把采集任务的约束写进去让 Agent 跨会话记住## 数据采集规范 - 所有采集脚本统一放在 scripts/ 目录输出 JSON 落到 data/ 目录 - 不要自己写 requests BeautifulSoup 硬抓先判断目标站是否有反爬 - 采集脚本必须包含超时设置、重试次数、请求间隔、异常日志 - 输出格式统一为 JSON Lines每行一个对象字段名用英文 - 禁止并发超过 3禁止无间隔连续请求这份CLAUDE.md的作用是跨会话的。下次你新开一个 Claude Code 会话说「更新一下采集脚本」它会直接按这个规范来而不是又从零写一个。4. 端到端验证让 Agent 生成脚本并回传数据配置就绪后跑一次完整的采集验证。目标选一个公开、无反爬的页面比如某技术博客的列表页避免一上来就被 403 卡住。第一步启动 Claude Code确认通道通claude进去后发一条读一下 .claude/settings.json 和 CLAUDE.md告诉我当前配置的模型和采集规范如果它能正确复述出模型名和采集规范说明配置生效了。第二步让它生成采集脚本。我用一个公开的示例页面做目标帮我写一个采集脚本抓取 https://example.com/blog 的文章列表 提取每篇文章的标题、链接、发布日期输出到 data/articles.jsonl。 按 CLAUDE.md 的规范来包含超时、重试、间隔和异常日志。Claude Code 会生成类似这样的脚本import json import time import logging import requests from bs4 import BeautifulSoup from pathlib import Path logging.basicConfig( levellogging.INFO, format%(asctime)s %(levelname)s %(message)s ) TARGET https://example.com/blog OUTPUT Path(data/articles.jsonl) TIMEOUT 15 RETRIES 3 INTERVAL 2.0 HEADERS { User-Agent: Mozilla/5.0 (compatible; DataCollector/1.0) } def fetch(url): for attempt in range(1, RETRIES 1): try: resp requests.get(url, headersHEADERS, timeoutTIMEOUT) resp.raise_for_status() return resp.text except requests.RequestException as e: logging.warning(attempt %d failed: %s, attempt, e) if attempt RETRIES: raise time.sleep(INTERVAL * attempt) def parse(html): soup BeautifulSoup(html, html.parser) items [] for node in soup.select(article): title_el node.select_one(h2 a) date_el node.select_one(time) if not title_el: continue items.append({ title: title_el.get_text(stripTrue), url: title_el.get(href), date: date_el.get(datetime) if date_el else None }) return items def main(): OUTPUT.parent.mkdir(parentsTrue, exist_okTrue) html fetch(TARGET) items parse(html) with OUTPUT.open(w, encodingutf-8) as f: for item in items: f.write(json.dumps(item, ensure_asciiFalse) \n) logging.info(wrote %d items to %s, len(items), OUTPUT) if __name__ __main__: main()第三步让它自己跑运行这个脚本把结果前 3 行打印出来Claude Code 会执行python scripts/collect.py然后head -3 data/articles.jsonl。如果输出类似{title: 第一篇文章, url: /blog/1, date: 2026-01-15} {title: 第二篇文章, url: /blog/2, date: 2026-01-12} {title: 第三篇文章, url: /blog/3, date: 2026-01-10}说明端到端链路通了Claude Code 通过 TaoToken 通道生成脚本、执行脚本、回传结构化数据。这一步是整个流程的地基地基通了后面接反爬能力才有意义。5. 本篇常见错排查报错一401 Unauthorized或invalid api key先检查settings.json里的ANTHROPIC_AUTH_TOKEN有没有多余空格Key 是不是复制完整。然后确认ANTHROPIC_BASE_URL是https://taotoken.net/api结尾不要多加斜杠。如果用的是环境变量引用确认 shell 里echo $TAOTOKEN_API_KEY有值且启动 Claude Code 的终端和 export 的终端是同一个。报错二model not found或模型名不识别ANTHROPIC_MODEL填的模型名要和通道支持的名称一致。如果你不确定有哪些可用模型先去模型对话页面发一条消息看它默认用的是什么模型把那个名字填进来。别自己拼一个不存在的版本号。报错三脚本能生成但运行报ModuleNotFoundErrorClaude Code 生成的脚本依赖requests和beautifulsoup4但你的环境没装。让它自己装pip install requests beautifulsoup4或者在CLAUDE.md里加一条「运行前先检查依赖缺什么装什么」让它自动处理。报错四采集目标返回 403脚本一行没执行这就是开头说的反爬问题。Claude Code 写的选择器没问题但请求在 CDN 层就被拦了。这时候不要让它反复改选择器那是白费力气。正确做法是换一条能拿到 HTML 的通道或者把目标换成无反爬的页面先跑通流程。判断方法很简单用curl -A python-requests/2.31.0 -o /dev/null -w %{http_code} url测一下如果返回 403就是通道问题不是代码问题。报错五settings.json改了但没生效Claude Code 只在启动时读配置。改完settings.json要退出重进。另外确认文件路径对项目级是.claude/settings.json用户级是~/.claude/settings.json别放错地方。JSON 格式也要检查多一个逗号都会导致整个文件被忽略。报错六Agent 每次会话都重新写一遍脚本这是没把约束写进CLAUDE.md的后果。把采集规范、脚本路径、输出格式写进去它下次就会复用而不是重写。如果已经有现成的脚本直接在CLAUDE.md里写「采集脚本已存在于 scripts/collect.py不要新建需要修改时直接改这个文件」。6. 把能力固定下来从演示到生产跑通一次不算完关键是让这套流程跨会话活下来。三个动作。第一把采集脚本和CLAUDE.md一起提交到项目仓库。脚本是资产规范是约束两者缺一不可。下次任何人包括 Agent打开这个项目都知道采集该怎么做。第二如果目标站有反爬不要硬刚。先判断拦截类型再决定是换通道还是换目标。判断命令curl -s -o /tmp/body.html -w %{http_code} \ -A python-requests/2.31.0 --max-time 20 \ https://目标站/路径 grep -io title[^]* /tmp/body.html | head -1返回 403 且标题是 Access Denied 之类的就是通道问题。这时候让 Claude Code 去改选择器没有任何意义。第三长期做编码和 Agent 任务的话把额度模型换成 Coding Plan比按次调用省。入口https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content如果你在接入过程中遇到配置报错、Key 不生效、模型名不识别这类问题先去 API Keys 页面确认 Key 状态再对照接入文档检查字段https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contenthttps://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentClaude Code 相关的接入细节包括settings.json字段说明和常见问题文档里有完整对照表https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content最后说一个我踩过的坑一开始我把 Key 硬编码进settings.json然后提交了后来换 Key 的时候满仓库找。现在改成环境变量引用配置文件进版本库Key 留在本地换 Key 只改一个环境变量不用动任何文件。这个习惯建议你一开始就养成。
RELATED

相关推荐

WordPress制作会员功能从零搭建:3步解决服务器报错痛点

WordPress制作会员功能从零搭建:3步解决服务器报错痛点

WordPress制作会员功能从零搭建:3步解决服务器报错痛点 很多设计师转前端做 WordPress 会员系统时,卡在第一步就崩溃了:域名解析指向错误,服务器 SSL 证书没配对,或者 Nginx 配置里 proxy_pass…

📅 2026/9/27 17:04:55
河南站长亲测:成品软件源码网站对比评测避坑指南

河南站长亲测:成品软件源码网站对比评测避坑指南

河南站长亲测:成品软件源码网站对比评测避坑指南 找建站公司怕被坑高价,这种焦虑我太懂了。昨天刚有个郑州做建材的老总跟我吐槽,找了家“大厂”,报价8万,最后交给他一个套壳的成品源码,连后台权限都没给全,想改个颜色都找不着入口。…

📅 2026/9/27 17:04:55
网站建设学什么专业?3步避坑,保姆级建站教程

网站建设学什么专业?3步避坑,保姆级建站教程

网站建设学什么专业?3步避坑,保姆级建站教程 做站三年,最头疼的不是代码报错,而是甲方指着那些千篇一律的模板网站骂:“这丑得我都想换个浏览器。”…

📅 2026/9/27 17:04:55
MORE NEWS

更多资讯

📰

网站建设分为哪几个步骤?老站长带你避坑做对比评测

网站建设分为哪几个步骤?老站长带你避坑做对比评测 别再信那些花里胡哨的模板站了,太丑、太慢、改不动,这才是老板们最头疼的事。很多人问 网站建设分为哪几个步骤 ,其实核心就一句话:别为了省事去套模板,要做真正的 对比评测…

📰

新手入门做网站的收获:告别模板丑站,3步搞定SEO

新手入门做网站的收获:告别模板丑站,3步搞定SEO 别再被那些花里胡哨的模板网站坑了。你花钱买的“高端大气”,在搜索引擎眼里就是垃圾代码,在客户眼里就是廉价感。做网站的收获,绝不仅仅是上线一个网址,而是从零搭建一套能自动获客的系统。…

📰

3年踩坑总结:成都百度推广开户公司速查手册

3年踩坑总结:成都百度推广开户公司速查手册 自己不会代码想做网站,却想靠百度推广快速获客?别急着找代理。很多成都的企业老板和转行新手,第一反应就是找“成都百度推广开户公司”,结果钱花了,流量没来,网站还是打不开。这份 速查手册…

📰

CursorLoader 使用指南:在 Android 中配 TaoToken 统一 Key 的 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

后端接口开发横向实测:用TaoToken统一Key跑通大模型生成接口文档与单元测试的效能对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

5个坑避开:电子商务网站域名注册要求与预算对比评测

5个坑避开:电子商务网站域名注册要求与预算对比评测 网站做好了没人访问,这往往是域名选错、备案踩坑或者解析配置失误导致的,别怪SEO,先查域名。很多老板做站前期舍不得在域名上多花心思,后期发现流量起不来,回头一看,域名后缀没选对,或者DNS…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬