如何在 2026 年爬虫 Crunchbase:5 种方法(含代码)

了解如何使用 Python 爬虫 Crunchbase 数据,探索可以收集哪些信息,并发现绕过反爬虫措施的解决方案。
5 分钟阅读
如何抓取 Crunchbase

Crunchbase 是公司、融资和投资者数据的首选来源,也是网络上最难抓取的网站之一:每个页面都位于 Cloudflare 挑战之后,而在 2026 年,这些数据越来越多地为交易来源模型、CRM 丰富和 AI 智能体提供支持。本指南展示了获取它的五种方法,并为每种方法提供真实、经过测试的代码和实时输出。

本指南涵盖的内容

  • 2026 年提取 Crunchbase 数据的五种方法,以及何时使用每种方法
  • 一次手动 Python 尝试,以及它遇到的 Cloudflare 墙
  • 针对没有预构建爬虫工具的页面,使用异步模式的网络解锁器
  • 当你需要点击或分页时使用抓取浏览器
  • 用于干净、结构化公司 JSON 的 Crunchbase 爬虫 API
  • 用于批量公司画像的现成 Crunchbase 数据集
  • 通过 Web MCP 将 Crunchbase 数据馈送给 AI 智能体

准备跳过构建了吗? 立即使用 Crunchbase 爬虫 API 提取一家公司,下载现成的 Crunchbase 数据集,或免费开始,每月 5,000 条记录且无需信用卡。

哪些 Crunchbase 数据值得收集

Crunchbase 公司资料是密集的公司画像数据。大多数团队想要的字段:

  • 公司: 名称、描述、Crunchbase 排名、类型、网站、总部地区和国家/地区
  • 牵引力: 月访问量、投资者数量、运营和 IPO 状态
  • 人员: 创始人和员工人数范围
  • 信号: 行业、社交链接和相似公司

爬虫 API 会以干净 JSON 的形式返回每家公司 98 个这样的字段。先注意一件事:Crunchbase 受到非常严格的保护,以至于现成的截图服务会被直接阻止,但 Bright Data 自家的抓取浏览器可以干净地渲染实时资料(方法 3 展示了真实捕获)。这种差距正是托管式采集在这里很重要的原因。

常见用例:VC 和 M&A 交易来源、竞争和市场情报、CRM 和潜在客户丰富,以及将结构化公司数据馈送到 AI 和 RAG 管道。

五种方法一览

方法 工作量 规模 成本 维护 最适合
手动 Python 免费(但被阻止) 了解为什么它很难
网络解锁器(异步) 按成功请求计费 自定义页面,你控制解析
抓取浏览器 按浏览器时间付费 交互:点击、分页等
Crunchbase 爬虫 API 起价 $0.70 / 1K 条记录 任意规模的结构化公司数据
Crunchbase 数据集 批量 起价 $0.0025 / 条记录 全市场公司画像,无需代码

方法 1:手动抓取,以及 Cloudflare 墙

天真的尝试只需一行。它不起作用。

import requests

url = "https://www.crunchbase.com/organization/openai"
resp = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}, timeout=30)
print("status:", resp.status_code)
print("cloudflare challenge:", "attention required" in resp.text.lower())

真实输出:

status: 403
cloudflare challenge: True
Crunchbase 的 Cloudflare 403 阻止页面,普通请求会得到的返回内容

Crunchbase 返回一个 403 “Attention Required” Cloudflare 挑战页面,没有公司数据。与某些网站不同,这不是间歇性的:默认请求每次都会被阻止。要可靠通过,需要托管式解锁(动态住宅代理、真实浏览器指纹和自动化挑战解决)。如果你仍然想走 DIY 路线,我们的 Python 网页抓取指南 涵盖了基础知识。下面的托管式方法会移除这一负担。

方法 2:异步模式的网络解锁器

当你需要原始页面时(例如没有预构建爬虫工具的资料类型),网络解锁器 会处理 Cloudflare 挑战并返回渲染后的 HTML。Crunchbase 足够重,以至于同步解锁可能超过请求超时,因此使用异步流程:提交,然后轮询。

Bright Data 网络解锁器
import os
import time
import requests

HEAD = {"Authorization": f"Bearer {os.environ['BRIGHTDATA_API_KEY']}"}
ZONE = os.environ["BRIGHTDATA_UNLOCKER_ZONE"]

# 1. Submit (async: returns immediately with a response_id)
rid = requests.post(
    "https://api.brightdata.com/unblocker/req",
    params={"zone": ZONE}, headers=HEAD,
    json={"url": "https://www.crunchbase.com/organization/openai"},
).json()["response_id"]

# 2. Poll until the unlock completes
while True:
    r = requests.get(
        "https://api.brightdata.com/unblocker/get_result",
        params={"response_id": rid}, headers=HEAD,
    )
    if r.status_code == 200:
        html = r.text
        break
    time.sleep(10)

print(len(html), "bytes")

这在大约 63 秒内返回了完整的 OpenAI 资料(约 1.08 MB),而同步调用在超过 280 秒后超时。公司数据位于页面的嵌入式 JSON 中,因此你可以直接提取字段:

import re

title = re.search(r"<title>(.*?)</title>", html).group(1)
desc = re.search(r'"short_description":"([^"]+)"', html).group(1)
print(title)
print(desc[:70])

真实输出:

OpenAI - Crunchbase Company Profile & Funding
OpenAI is an AI research and deployment company that develops advanced

你负责解析,对于没有预构建抓取工具的页面类型来说,这是正确的权衡。

网络解锁器也通过 Web MCP 暴露:它的 scrape_as_markdown 工具运行在网络解锁器上,因此 AI 智能体可以直接从自然语言请求中解锁页面,而无需你这边进行 API 接线。同样的调用也可以从终端运行。

终端中的自然语言抓取:Web MCP 的 scrape_as_markdown 运行在网络解锁器上

如果你想要的只是干净的公司数据,爬虫 API 会移除这一步。

方法 3:当你需要真实浏览器时,抓取浏览器

到目前为止的方法都是获取页面。有时你需要先与它交互:点击进入融资轮次标签、关闭模态框,或在你想要的数据加载之前对搜索结果分页。这就是抓取浏览器的用途,它是云中的托管 Chrome 实例,内置相同的解锁功能,通过标准 Chrome DevTools Protocol (CDP) 驱动。因为它是真实浏览器,它会渲染 Crunchbase 的 JavaScript 并清除阻止方法 1 的 Cloudflare 挑战;又因为它使用 CDP,所以它可以通过一行端点替换接入现有的 Playwright 或 Puppeteer 脚本。

最快看到它工作的方法是 Bright Data CLI,它会为你驱动一个抓取浏览器会话。打开 OpenAI 的资料,然后截取整页截图:

brightdata browser open https://www.crunchbase.com/organization/openai --zone scraping_browser2
brightdata browser screenshot --full-page

会话是实时的,页面完整渲染,与普通请求返回 403 的同一个资料:

Navigated to https://www.crunchbase.com/organization/openai
Title: OpenAI - Crunchbase Company Profile & Funding
URL: https://www.crunchbase.com/organization/openai

下面是该渲染后的资料,其中页面公开的公司画像区块已编号:

在 Bright Data 的抓取浏览器中渲染的 Crunchbase OpenAI 资料,关键数据区块已编号
  1. 公司名称和 Crunchbase 排名(OpenAI 的 CB Rank 5)
  2. 公司业务的描述
  3. 总部、公司规模、类型和网站
  4. 公司运营所在的行业
  5. 融资总额和 Crunchbase 分数

会话会在命令之间保持打开,因此后续操作会作用于同一页面,无需重新导航:

brightdata browser snapshot     # accessibility tree of the live page
brightdata browser screenshot --full-page

整页捕获显示了真实浏览器能拉取到多少单次获取会错过的内容,包括融资轮次、投资者、相似公司和新闻,全部已渲染:

在抓取浏览器中滚动的完整 OpenAI 资料

在代码中,你通过 CDP 将普通 Playwright 脚本连接到云浏览器,无需本地 Chrome,也无需管理驱动:

import time
from playwright.sync_api import sync_playwright

# wss endpoint from your Scraping Browser zone in the Bright Data dashboard
CDP = "wss://brd-customer-<id>-zone-<zone>:<password>@brd.superproxy.io:9222"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(CDP)
    page = browser.new_page()
    page.goto("https://www.crunchbase.com/organization/openai",
              timeout=120_000, wait_until="domcontentloaded")

    # the Scraping Browser clears the Cloudflare challenge; wait for the real page
    for _ in range(12):
        if "moment" not in page.title().lower():
            break
        time.sleep(5)

    print(page.title())  # OpenAI - Crunchbase Company Profile & Funding
    # interact first if needed (click a tab, paginate, etc.), then read the DOM
    print(page.locator("identifier-formatter span").first.inner_text())  # OpenAI
    browser.close()

一个注意事项:抓取浏览器按浏览器时间计量,而不是按交付记录计量,因此它不是提取单个资料最便宜的方法(下一种方法中的爬虫 API 才是)。当任务确实需要交互、点击路径、滚动或分页,而一次性获取无法做到时,再使用它。它也可在 Web MCP 的 Pro 模式中使用,因此 AI 智能体可以驱动同一个浏览器。

方法 4:Crunchbase 爬虫 API

Crunchbase 爬虫 API 是一个预构建抓取工具。你发送公司 URL 并接收结构化 JSON,Cloudflare 解锁在服务器端处理。它是 Bright Data 的 Web 爬虫工具 API 的一部分,覆盖 700+ 个网站。

Bright Data Crunchbase 爬虫工具

对于最多 20 个 URL,使用同步端点:

import os
import requests

DATASET_ID = "gd_l1vijqt9jfj7olije"  # Crunchbase companies information
TOKEN = os.environ["BRIGHTDATA_API_KEY"]

resp = requests.post(
    "https://api.brightdata.com/datasets/v3/scrape",
    params={"dataset_id": DATASET_ID, "format": "json"},
    headers={"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"},
    json={"input": [{"url": "https://www.crunchbase.com/organization/openai"}]},
    timeout=200,
)
company = resp.json()[0]
for field in ("name", "about", "num_employees", "region", "country_code",
              "cb_rank", "num_investors", "monthly_visits", "operating_status", "ipo_status"):
    print(f"{field}: {company[field]}")

真实响应是一条包含 98 个字段的干净记录(完整记录还包括 11 位创始人、10 个行业和社交链接)。该公司的精简输出:

name: OpenAI
about: OpenAI is an AI research and deployment company that develops advanced AI models
num_employees: 1001-5000
region: California
country_code: United States
cb_rank: 5
num_investors: 95
monthly_visits: 487467460
operating_status: active
ipo_status: private

无需代理,无需处理 Cloudflare,无需解析。对于更大的任务,切换到异步端点:触发一次采集,轮询完成状态,然后下载。

import os
import time
import requests

DATASET_ID = "gd_l1vijqt9jfj7olije"
HEAD = {"Authorization": f"Bearer {os.environ['BRIGHTDATA_API_KEY']}", "Content-Type": "application/json"}

companies = [
    "https://www.crunchbase.com/organization/openai",
    "https://www.crunchbase.com/organization/anthropic",
    # ... hundreds more
]
snap = requests.post(
    "https://api.brightdata.com/datasets/v3/trigger",
    params={"dataset_id": DATASET_ID, "format": "json"}, headers=HEAD,
    json={"input": [{"url": u} for u in companies]},
).json()["snapshot_id"]

while True:
    status = requests.get(
        f"https://api.brightdata.com/datasets/v3/progress/{snap}", headers=HEAD,
    ).json()["status"]
    if status == "ready":
        break
    time.sleep(10)

data = requests.get(
    f"https://api.brightdata.com/datasets/v3/snapshot/{snap}",
    params={"format": "json"}, headers=HEAD,
).json()
print(len(data), "companies collected")

你只为交付的记录付费,Web 爬虫工具 API 起价为每 1,000 条记录 $0.70,并且每个新账户每月可获得 5,000 条免费记录用于测试,无需信用卡。两个实用说明:每个快照可下载 30 天,custom_output_fields 让你可以将响应裁剪为仅包含你需要的字段。

不想编写任何这些内容?同一个爬虫工具也作为 Web MCP 工具 web_data_crunchbase_company(Pro 模式)暴露,因此 AI 智能体可以从自然语言请求中返回相同的 98 字段记录,而你这边无需 dataset_id,也无需轮询代码。它同样可以从终端运行:

从终端通过一次 Web MCP 工具调用提取结构化 Crunchbase 记录

方法 5:现成的 Crunchbase 数据集

如果你需要的是全市场覆盖,而不是特定公司列表,请跳过采集并购买 Crunchbase 数据集。相同的结构化模式,已预先采集并刷新。

Bright Data Crunchbase 数据集

市场数据集包含 4.7M+ 条公司记录,覆盖 124 个字段,价格从每条记录 $0.0025 起,最低订单 $250,符合 GDPR,可作为一次性下载或刷新订阅。你可以按地区、行业、排名或其他属性筛选,并以 JSON、CSV 或 Parquet 下载。Bright Data 也为相邻需求发布同样可直接使用的数据,包括最佳公司数据提供商最佳 B2B 数据提供商

奖励:将 Crunchbase 数据馈送给 AI 智能体(MCP)

2026 年最大的转变是,这些数据的消费者通常是 AI 智能体。Model Context Protocol (MCP) 是智能体调用外部工具的方式,而 Bright Data 的 Web MCP 服务器为任何 LLM 提供实时搜索(搜索引擎 API)和通过相同解锁基础设施进行的抓取,因此智能体永远不会遇到方法 1 中的 Cloudflare 墙。

Bright Data Web MCP

用一行将你的 MCP 客户端指向托管服务器:

https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN

或者在本地运行它,或用一条命令将它接入你的编码智能体:

brightdata add mcp --agent claude-code,cursor,codex

免费的 Rapid 模式以每个请求一个 credit 的方式暴露 search_enginescrape_as_markdowndiscover,来自同样每月 5,000 个免费 credit。Pro 模式新增 60+ 个结构化工具,包括预构建网页数据提取器和抓取浏览器自动化。完整演练请参阅 Web MCP 抓取教程

你可以先使用 Bright Data CLI 从终端尝试智能体使用的确切工具:

从 Bright Data CLI 使用 Web MCP 工具

连接后,你用自然语言提问,智能体会自行调用工具,返回实时公司数据,而你的项目中没有爬虫代码:

AI 智能体使用 Web MCP 提取 Crunchbase 数据

你可以用这些数据做什么

拿到记录后,分析只需几行。这里我们提取几个 AI 实验室,并按投资者数量对它们排序。

import requests

DATASET_ID = "gd_l1vijqt9jfj7olije"
companies = ["openai", "anthropic", "databricks", "mistral-ai", "hugging-face"]
resp = requests.post(
    "https://api.brightdata.com/datasets/v3/scrape",
    params={"dataset_id": DATASET_ID, "format": "json"},
    headers={"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"},
    json={"input": [{"url": f"https://www.crunchbase.com/organization/{c}"} for c in companies]},
)
ranked = sorted(
    (c for c in resp.json() if c.get("num_investors")),
    key=lambda c: c["num_investors"], reverse=True,
)
for c in ranked:
    print(c["name"], "-", c["num_investors"], "investors, rank", c["cb_rank"])

真实输出:

Anthropic - 133 investors, rank 94
OpenAI - 95 investors, rank 5
Databricks - 91 investors, rank 446
Mistral AI - 46 investors, rank 10
Hugging Face - 40 investors, rank 2425
使用 Crunchbase 爬虫 API 提取的领先 AI 公司投资者数量

Anthropic 吸引了该组中最广泛的投资者基础(133),领先于 OpenAI(95)和 Databricks(91),而 Crunchbase 排名讲述了另一个故事,OpenAI 位列 #5,Mistral AI 位列 #10。一个实用习惯:验证每个 slug 是否解析为你预期的公司。本次运行中的第六个实验室指向了一条过时的组织记录(排名超过 200,000,员工人数 1 到 10),并在制图前被删除,这类检查值得在信任批处理之前添加。

如何选择

  • 只是学习? 手动尝试展示了为什么 Crunchbase 很难。不要在生产中运行它。
  • 需要一个没有预构建爬虫工具的页面,并且想自己负责解析? 使用异步模式的网络解锁器。
  • 需要在数据加载前点击或分页? 使用抓取浏览器,并通过 CDP 用 Playwright 驱动它。
  • 需要任意规模的干净、结构化公司数据? 使用 Crunchbase 爬虫 API。这是默认选择。
  • 需要无需代码的全市场公司画像? 使用数据集。

如需一对一比较,请参阅我们关于最佳 Crunchbase 数据提供商最佳公司数据提供商的汇总。

结论

Crunchbase 是最糟糕的抓取目标:激进的 Cloudflare 保护会阻止普通请求,甚至阻止截图服务。这使得选择正确的抽象层级比巧妙代码更重要。当你需要自定义控制时,网络解锁器会为你获取页面;当你需要点击穿透时,抓取浏览器会驱动真实会话;爬虫 API 以零维护为每家公司提供 98 个结构化字段;而数据集则无需任何代码即可提供 4.7M+ 家公司。从爬虫 API 的每月免费记录开始,将它指向你关心的公司,然后从那里构建。

常见问题

我可以用普通 Python requests 抓取 Crunchbase 吗?

不可以。Crunchbase 在每个页面前都设置了 Cloudflare 挑战,因此默认请求每次都会返回一个没有数据的 403 ‘Attention Required’ 页面。你需要托管式解锁,这就是大多数团队使用网络解锁器或 Crunchbase 爬虫 API 的原因。

Crunchbase 爬虫 API 返回哪些数据?

单条公司记录包括 98 个字段:名称、描述、Crunchbase 排名、员工人数范围、地区和国家/地区、网站、行业、运营和 IPO 状态、创始人、投资者数量、社交链接等,以干净 JSON 形式提供,无需解析。

为什么在 Crunchbase 上为网络解锁器使用异步模式?

Crunchbase 足够重,以至于同步解锁可能超过请求超时(测试中超过 280 秒)。异步流程会提交 URL,立即返回 response_id,然后你轮询结果,结果大约 63 秒后返回。

我应该使用爬虫 API 还是现成数据集?

当你有特定公司 URL 并希望按需获取新鲜数据时,使用爬虫 API。当你需要全市场覆盖且无需提供 URL 时,使用数据集。Crunchbase 数据集包含 4.7M+ 条记录,覆盖 124 个字段,起价为每条记录 $0.0025。

开始需要多少钱?

每个新的 Bright Data 账户都包括每月跨 Web 爬虫工具 API、网络解锁器和搜索引擎 API 的 5,000 条免费记录,无需信用卡。除此之外,Web 抓取工具 API 起价为每 1,000 条交付记录 $0.70。

AI 智能体可以通过 MCP 收集 Crunchbase 数据吗?

可以。Bright Data 的 Web MCP 服务器将任何兼容 MCP 的 LLM(Claude、GPT、Gemini)连接到实时网页数据。在免费的 Rapid 模式中,智能体以每个请求一个 credit 的方式获得 search_engine 和 scrape_as_markdown,因此它可以按需提取当前公司数据。Pro 模式新增 60+ 个结构化数据工具。

支持支付宝等多种支付方式

Antonello Zanini

技术写作

5.5 years experience

Antonello是一名软件工程师,但他更喜欢称自己为技术传教士。通过写作传播知识是他的使命。

Expertise
Web 开发 网页抓取 AI 集成