用 Claude Code 抓取数据的九种方式

0 阅读7分钟

Claude Code 用在“抓取数据(scraping)”上,是最简单、也最有用的任务之一。
不过,要让 Claude Code 抓取数据的效果达到最优,取决于你是否给了它正确的“提示(nudges)”以及是否让它能用到正确的工具。

在这篇文章里,我会非常全面地介绍 用 Claude Code 抓取数据的九种不同方式

image.png

方法 1:直接让 Claude Code 去抓网站

image.png

对于一大批网站,你只需要告诉 Claude Code:去抓这个网站、你想抓什么内容,并让它把结果写到一个 CSVSQLite 文件里。

它会替你在网站上到处探查,可能会写一个 Python 脚本,运行脚本,甚至可能写一些单元测试,然后把数据写到你电脑上的某个位置。

方法 2:让 Claude Code 去找接口(Endpoints)

image.png

很多有价值的数据并不是作为静态页面渲染出来的,而是通过某个 API 调用动态加载 的。
有时候 Claude Code 会自己把这个 API 调用逆向出来,但有时候你需要推它一把,明确告诉它:

“嘿,去找一个 API,比如它正在展示酒店的定价和预订数据——你可能会把这些数据用于论文研究或竞品分析。”

这个方法和上一个方法的唯一区别在于:你在这里明确让它 去找 endpoints
就只是加了这个词、这一个小小的推动,有时就能让结果比“直接让它抓网站”更好。

方法 3:ScrapeCreators

image.png

多数社交媒体网站上有大量有用数据是可以抓的,但它们会把 endpoints 设计得特别难逆向。
它们有自己的反爬规则,而且选择器(selectors)的工作方式可能每周都在变。

你当然可以让 Claude Code 或 Codex 一直尝试逆向,但我更喜欢用一个叫 Scrape Creators 的工具:
scrapecreators.com/

它几乎为每一种社交媒体都提供了 API endpoints。
我建议你把 Scrape Creators 的 endpoints 做成一个 skill,当作一次性的工具能力接入;这样你的“代理式编码工具(agentic coding tool)”以后就一直能用到它。

方法 4:Apify Actor

image.png

Apify 是一个“抓取器(scraper)市场”。很多难抓的网站,都有人在 Apify 上做了可租用的抓取器,Apify 里叫它们 actors

我喜欢用的一个 actor 是 Google Maps 抓取器:它对社会科学研究者很有用——可以直接做数据分析,或者用来构造一些代理指标(proxy measures)。它对做商业的人也很有用,比如做竞品分析,或寻找本地销售线索。

唯一的问题是:你得付费。
有的按用量付费,有的按月租。免费试用期很有限,之后你需要付 Apify 的订阅费,而订阅费又可以用于你使用那些按量计费的 actors。

方法 5:Firecrawl → Markdown → 结构化抽取(Structured Extraction)

你想抓的很多数据并不是高度结构化的。

比如我在做 EconNow 项目时,需要抓取大量经济学求职市场候选人的页面。

Aniket Panjwani
@aniketapanjwani
· 2025 年 11 月 4 日
我正在做一个涵盖所有 2025-2026 年经济学博士求职市场候选人的数据库:econ.now/candidates

  • 目前覆盖 18 个机构、307 位候选人
  • 可以按机构/领域/导师筛选
  • 包含 CV、JMP,以及候选人个人网站链接
  • 接下来几周还会加入所有金融/经济候选人!

这些页面各自的 HTML 结构都不一样,所以我不想为每个网页都单独写抓取器。
相反,一个常见技巧是:把网页转成 Markdown,再让一个 LLM(比如 OpenAI 的模型)去解析 Markdown,并生成结构化输出。

Firecrawl 是一个付费服务,可以很方便地把网页转成 Markdown。
它也提供开源版本,但我看到的关于开源版本的一切评价都是:很烂。所以对我来说,Firecrawl 的投资回报率足够高,我愿意自己付费。

基本流程是:有了把网页转成 Markdown 的工具后,你就可以把 Markdown 通过 API 传给 OpenAI。
如果你按 API 期望的方式把 structured outputs 配好,你就能让 LLM 从这些结构各异、非结构化的网站里解析出你要的字段。

方法 6:自己动手 HTML → Markdown → 结构化抽取

你可能会问我:“嘿,傻瓜,你为啥要给 Firecrawl 付费?我不能自己把 HTML 转成 Markdown 吗?”

答案是:可以,你当然可以。也有一些工具可以做到:

我用 Firecrawl 的原因是:我觉得它对某些边界情况(edge cases)的处理更好。它是个设计很好的服务,那些小幅度的改进对我来说值得。
但如果你预算很小,比如你是学术人员,只买了一个 20 美元/月的 Codex 订阅,除此之外不想再花钱——那就别买 Firecrawl 了。

直接用这些包就行,或者干脆把它们指给 Claude Code:
“嘿,帮我把这个转成 Markdown,然后帮我用 OpenAI API 抽取数据。”

另外还有一点:对于小规模的东西,你甚至不需要把 Markdown 发给外部 API。你可以直接让 Claude Code 或 Codex 自己完成结构化抽取。
但如果你要处理成千上万、甚至上万级别的文档,这会非常痛苦——你不会想这么干的。

方法 7:yt-dlp

image.png

yt-dlp 是一个工具,可以抓取任意 YouTube 视频、它的元数据,以及视频字幕:
github.com/yt-dlp/yt-d…

我基本上不看视频了。我会直接把字幕下载下来,然后让 Claude Code 或 Codex 给我做一个个性化总结,把视频内容映射到我真正关心的语境里。

在这个视频里,我用 Claude Code + yt-dlp 做了一个现场练习:逆向分析一个 AI YouTuber 的“成功视频”模式:
youtu.be/rxQl4A9-dnk…

我做那个 YouTube 视频原本只是随手做的,但我在里面现场做出来的产品,我后来真的经常在用:它帮助我思考要做什么视频、以及怎么构思选题。

YouTube 视频里有非常多有价值的数据,我真心觉得这个工具被严重低估、利用得太少了。

方法 8:Reddit 的 JSON Endpoint

image.png

Reddit 有一个 JSON endpoint,几乎可以用它在 Reddit 上找到任何东西。

你只需要在 Reddit URL 的末尾加上 “.json” ,你的代理式编码工具就能拿到那个 Reddit 区域的完整 JSON 文档。

比如,看看 Claude Code 子版块的 JSON endpoint:
old.reddit.com/r/claudecod…

我自己设置了一些 skills,用来持续“感知脉搏(keep a pulse)”——看看我关心的一大堆 subreddit 里大家在讨论什么。那些 skills 本质上就是让 Claude Code 或 Codex 去访问这些 Reddit JSON endpoints。

方法 9:Agent Browser + 凭据(Credentials)

image.png

有很多网站被某种认证(authentication)保护着。要绕过认证,你基本上有两种办法:

第一种:你手动完成认证流程。流程完成后,有时会拿到一个 cookie 存在你电脑上,然后 Claude Code 可以用这个 cookie 来认证,看到登录后的页面。

第二种:用 Vercel 的一个工具 Agent Browser
agent-browser.dev/

这是一个为 agent 优化的浏览器自动化 CLI。
对于小规模抓取,我更倾向用 Agent Browser。

比如,你可以把 Facebook 登录凭据存到 Claude Code 或 Codex 能访问的地方:
要么放在某个在线 vault 里,通过安全的密钥交换机制访问;要么就“随缘一点(yolo)”,直接放在终端的环境变量里或某个 .env 文件里。

然后你可以创建一个 skill:让 Claude Code 通过 Agent Browser 用你的 Facebook 凭据登录,进入你所在的 Facebook 群组,抓取所有帖子,并把数据写到你指定的位置。