CrawlForge MCP
基础工具多格式2 credits

scrape

一次抓取即可完成的统一多格式提取。对同一次页面加载请求 markdown、HTML、原始 HTML、纯文本、链接、元数据、截图或 JSON——所有请求的格式都由同一次抓取提供,某个格式失败时会以警告形式返回,而不会让整次调用失败。

使用场景

一次调用替代四次

在一次请求中拿到页面的 markdown、链接和元数据,无需串联 fetch_url、extract_links 和 extract_metadata。

可直接喂给 LLM 的 markdown

开启 onlyMainContent 并请求 markdown,把干净、无模板噪声的页面文本直接送入 RAG 流水线或提示词。

存档快照

同时请求 rawHtml 和 screenshot,一次性捕获页面的机器可读状态和视觉状态。

有韧性的流水线

按格式返回的 warnings 让部分结果得以通过——截图失败不会丢掉你已经付费拿到的 markdown。

Endpoint

POST/api/v1/tools/scrape
Auth Required
Free 计划 1 req/s
2 credits

Parameters

所有请求的格式都由同一次页面抓取提供,因此请求六种格式与请求一种格式同样是 2 credits。
NameTypeRequiredDefaultDescription
url
stringRequired-
要抓取的 URL(必须包含协议:http:// 或 https://)
Example: https://example.com
formats
arrayOptional["markdown"]
要返回的输出格式。可选一个或多个:`markdown`、`html`、`rawHtml`、`text`、`links`、`metadata`、`screenshot`、`json-schema`。
Example: ["markdown", "links", "metadata"]
onlyMainContent
booleanOptionaltrue
剥离导航、页眉和页脚,只返回正文主体内容。
Example: true

请求示例

cURL

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/scrape \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["markdown", "links", "metadata"],
    "onlyMainContent": true
  }'

TypeScript

scrape.tsTypescript
const response = await fetch('https://crawlforge.dev/api/v1/tools/scrape', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com',
    formats: ['markdown', 'links', 'metadata'],
    onlyMainContent: true,
  }),
});

const data = await response.json();

if (data.success) {
  console.log('Markdown:', data.data.markdown);
  console.log('Links found:', data.data.links.length);
  console.log('Title:', data.data.metadata.title);

  // A 200 with warnings is a PARTIAL success — some formats came back, others didn't.
  if (data.data.warnings.length > 0) {
    console.warn('Partial result:', data.data.warnings);
  }

  console.log('Credits used:', data.credits_used);
  console.log('Credits remaining:', data.credits_remaining);
} else {
  console.error('Error:', data.error);
}

Python

scrape.pyPython
import requests
import os

response = requests.post(
    'https://crawlforge.dev/api/v1/tools/scrape',
    headers={
        'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
        'Content-Type': 'application/json',
    },
    json={
        'url': 'https://example.com',
        'formats': ['markdown', 'links', 'metadata'],
        'onlyMainContent': True
    }
)

data = response.json()

if data['success']:
    print(f"Markdown: {data['data']['markdown']}")
    print(f"Links found: {len(data['data']['links'])}")
    print(f"Title: {data['data']['metadata']['title']}")

    # A 200 with warnings is a PARTIAL success — some formats came back, others didn't.
    if data['data']['warnings']:
        print(f"Partial result: {data['data']['warnings']}")

    print(f"Credits used: {data['credits_used']}")
    print(f"Credits remaining: {data['credits_remaining']}")
else:
    print(f"Error: {data['error']}")

响应示例

200 OK412ms
{
"success": true,
"data": {
"url": "https://example.com",
"onlyMainContent": true,
"formats": [
"markdown",
"links",
"metadata"
],
"markdown": "# Example\n\nMain content scraped from https://example.com.",
"links": [
"https://example.com/about",
"https://example.com/pricing"
],
"metadata": {
"title": "Example",
"description": "Page at https://example.com"
},
"warnings": []
},
"credits_used": 2,
"credits_remaining": 998,
"processing_time": 412
}
Field Descriptions
data.formats回显本次请求的格式列表
data.markdown转换为 markdown 的正文内容(请求 `markdown` 时出现)
data.links页面上发现的所有链接(请求 `links` 时出现)
data.metadata标题、描述和 meta 标签(请求 `metadata` 时出现)
data.warnings每个无法生成的格式对应一条记录。空数组表示所有请求的格式都成功了。
credits_used本次请求扣除的 credits(每次抓取 2 credits,与格式数量无关)
credits_remaining你剩余的 credits 余额

错误处理

输入无效(400 Bad Request)

URL 格式无效,或 formats 中包含受支持列表之外的值。传入该字段时至少需要一种格式。

URL 被拦截(403 Forbidden)

目标解析到私有、内网或链路本地地址,被 SSRF 防护拒绝。只能抓取公网可访问的 URL。

credits 不足(402 Payment Required)

你的账户 credits 不足。购买更多 credits 或升级你的计划。

超出速率限制(429 Too Many Requests)

你已超出所在计划的速率限制。稍等片刻,或升级你的计划以获得更高上限。

专业提示: 每次响应都检查 data.warnings。返回 200 但 warnings 非空,说明部分格式成功、部分未成功——应当按部分成功处理,而不是失败。

credits 成本

2 credits
每次请求 2 credits
每次成功的 scrape 请求扣除 2 credits,无论请求多少种格式,因为所有格式都来自同一次抓取。

Free 计划: 1,000 个一次性 credits = 500 次请求

Hobby 计划: 每月 5,000 credits = 2,500 次请求(19 美元/月)

Professional 计划: 每月 50,000 credits = 25,000 次请求(99 美元/月)

Business 计划: 每月 250,000 credits = 125,000 次请求(399 美元/月)

相关工具

fetch_url
需要未经处理的原始响应体时使用的原始 HTTP 抓取(1 credit)
extract_content
针对单个页面、基于可读性的正文提取(2 credits)
batch_scrape
以异步任务方式对大量 URL 执行相同的提取(5 credits)
scrape_with_actions
在抓取重 JS 页面前先点击、滚动或填写表单(5 credits)
准备好试用 scrape 了吗?免费注册,获得 1,000 credits 开始构建。

页脚

CrawlForge MCP

面向 AI Agent 的企业级网页抓取。27 个专业 MCP 工具,专为构建智能系统的现代开发者而设计。

产品

  • 功能
  • Playground
  • 价格
  • 应用场景
  • 集成
  • 替代方案
  • 更新日志

资源

  • 快速上手
  • API 参考
  • 模板
  • 指南
  • 博客
  • 术语表
  • 常见问题
  • 网站地图

开发者

  • MCP 协议
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

公司

  • 关于我们
  • 联系我们
  • 隐私政策
  • 服务条款
  • 可接受使用政策
  • Cookie

保持更新

获取新工具和新功能的最新动态。

基于 Next.js 和 MCP 协议构建

© 2025-2026 CrawlForge。保留所有权利。