CrawlForge MCP
Alat AsasBerbilang Format2 credits

scrape

Pengekstrakan berbilang format bersatu daripada satu ambilan. Minta markdown, HTML, HTML mentah, teks, pautan, metadata, tangkapan skrin atau JSON daripada satu muatan halaman — setiap format yang diminta disajikan daripada ambilan yang sama, dan format yang gagal dikembalikan sebagai amaran dan bukannya menggagalkan keseluruhan panggilan.

Kes Penggunaan

Satu Panggilan Ganti Empat

Dapatkan markdown, pautan dan metadata daripada satu halaman dalam satu permintaan tanpa merantai fetch_url, extract_links dan extract_metadata.

Markdown Sedia untuk LLM

Minta markdown dengan onlyMainContent dihidupkan untuk menyalurkan teks halaman yang bersih dan bebas bingkai terus ke saluran RAG atau prompt.

Petikan Arkib

Minta rawHtml dan screenshot serentak untuk merakam kedua-dua keadaan halaman yang boleh dibaca mesin dan keadaan visualnya.

Saluran yang Berdaya Tahan

warnings bagi setiap format membenarkan hasil separa lalu — tangkapan skrin yang gagal tidak pernah membuang markdown yang sudah anda bayar.

Endpoint

POST/api/v1/tools/scrape
Auth Required
1 req/s pada pelan Free
2 credits

Parameters

Setiap format yang diminta disajikan daripada satu ambilan halaman, jadi meminta enam format berkos 2 credits yang sama seperti meminta satu.
NameTypeRequiredDefaultDescription
url
stringRequired-
URL yang hendak dikikis (mesti termasuk protokol: http:// atau https://)
Example: https://example.com
formats
arrayOptional["markdown"]
Format output yang hendak dikembalikan. Satu atau lebih daripada `markdown`, `html`, `rawHtml`, `text`, `links`, `metadata`, `screenshot`, `json-schema`.
Example: ["markdown", "links", "metadata"]
onlyMainContent
booleanOptionaltrue
Buang navigasi, pengepala dan pengaki supaya hanya kandungan utama artikel dikembalikan.
Example: true

Contoh Permintaan

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']}")

Contoh Respons

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.formatsMengulang semula format yang diminta
data.markdownKandungan utama yang ditukar kepada markdown (hadir apabila `markdown` diminta)
data.linksSetiap pautan yang ditemui pada halaman (hadir apabila `links` diminta)
data.metadataTajuk, penerangan dan tag meta (hadir apabila `metadata` diminta)
data.warningsSatu entri bagi setiap format yang tidak dapat dihasilkan. Array kosong bermakna setiap format yang diminta berjaya.
credits_usedCredits yang ditolak bagi permintaan ini (2 setiap kikisan, tidak kira bilangan format)
credits_remainingBaki credits anda

Pengendalian Ralat

Input Tidak Sah (400 Bad Request)

Format URL tidak sah, atau formats mengandungi nilai di luar senarai yang disokong. Sekurang-kurangnya satu format diperlukan apabila medan itu dihantar.

URL Disekat (403 Forbidden)

Sasaran diselesaikan kepada alamat peribadi, dalaman atau link-local dan ditolak oleh perlindungan SSRF. Hanya URL yang boleh dicapai secara awam boleh dikikis.

Credits Tidak Mencukupi (402 Payment Required)

Akaun anda tidak mempunyai credits yang mencukupi. Beli lebih banyak credits atau naik taraf pelan anda.

Had Kadar Dilampaui (429 Too Many Requests)

Anda telah melampaui had kadar pelan anda. Tunggu sebentar atau naik taraf pelan anda untuk had yang lebih tinggi.

Petua Pro: Periksa data.warnings pada setiap respons. Status 200 dengan array warnings yang tidak kosong bermakna sesetengah format berjaya dan sesetengahnya tidak — anggapnya kejayaan separa, bukan kegagalan.

Kos Credits

2 credits
2 credits setiap permintaan
Setiap permintaan scrape yang berjaya berkos 2 credits tidak kira berapa banyak format yang anda minta, kerana setiap format disajikan daripada satu ambilan.

Pelan Free: 1,000 credits sekali sahaja = 500 permintaan

Pelan Hobby: 5,000 credits/bulan = 2,500 permintaan (USD 19/bulan)

Pelan Professional: 50,000 credits/bulan = 25,000 permintaan (USD 99/bulan)

Pelan Business: 250,000 credits/bulan = 125,000 permintaan (USD 399/bulan)

Alat Berkaitan

fetch_url
Ambilan HTTP mentah apabila anda mahu badan respons yang asli (1 credit)
extract_content
Pengekstrakan kandungan utama berasaskan readability untuk satu halaman (2 credits)
batch_scrape
Jalankan pengekstrakan yang sama merentas banyak URL sebagai kerja tak segerak (5 credits)
scrape_with_actions
Klik, tatal atau isi borang sebelum mengikis halaman yang berat dengan JS (5 credits)
Sedia mencuba scrape? Daftar secara percuma dan dapatkan 1,000 credits untuk mula membina.

Footer

CrawlForge MCP

Web scraping gred perusahaan untuk Ejen AI. 27 alat MCP khusus yang direka untuk pembangun moden yang membina sistem pintar.

Produk

  • Ciri
  • Playground
  • Harga
  • Kes Penggunaan
  • Integrasi
  • Alternatif
  • Changelog

Sumber

  • Mula Bekerja
  • Rujukan API
  • Templat
  • Panduan
  • Blog
  • Glosari
  • Soalan Lazim
  • Peta Laman

Pembangun

  • Protokol MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Syarikat

  • Tentang
  • Hubungi
  • Privasi
  • Terma
  • Penggunaan Boleh Diterima
  • Cookies

Kekal dikemas kini

Dapatkan kemas kini terkini tentang alat dan ciri baharu.

Dibina dengan Next.js dan protokol MCP

© 2025-2026 CrawlForge. Hak cipta terpelihara.