CrawlForge MCP
Alat Lanjutan5 credits

batch_scrape

Ambil banyak URL dalam satu panggilan dengan kumpulan pekerja berkongsi. Permintaan ini segerak — ia mengembalikan hasil yang siap, bukan pemegang kerja — dan setiap URL kembali dengan statusnya sendiri, jadi satu halaman mati tidak pernah menenggelamkan kelompok itu. Hasilnya turut disimpan selama 24 jam dan boleh dibaca semula dengan get_batch_results.

Kes Penggunaan

Sapuan Harga Pesaing

Tarik medan CSS yang sama daripada lima puluh halaman produk dalam satu permintaan, dan bukannya lima puluh perjalanan pergi balik.

Semakan Kesihatan Pautan

Hantar senarai URL dan baca http_status bagi setiap entri. Apa-apa yang tidak dapat dicapai kembali sebagai failed berserta sebabnya.

Inventori Kandungan

Suapkan peta tapak ke dalam kelompok dan kumpulkan setiap tajuk dan URL kanonik untuk hamparan audit.

Pengesahan Selepas Penggunaan

Periksa bahawa satu set halaman kritikal masih mengembalikan 200 dan masih mengandungi elemen yang anda jangkakan.

Pemasangan Set Data

Kumpulkan 5,000 aksara pertama teks body daripada senarai URL sebagai input kepada saluran hiliran.

Pengumpulan Tertunda

Jalankan kelompok sekarang dan tarik hasil yang disimpan kemudian daripada proses lain dengan get_batch_results.

Endpoint

POST/api/v1/tools/batch_scrape
Auth Required
1 req/s pada pelan Free
5 credits

Parameters

API REST terhoskan menerima set parameter MCP yang penuh supaya badan permintaan yang sama berfungsi pada kedua-dua permukaan, tetapi hanya urls, batch_config.concurrency dan extraction_template.fields mengubah apa yang dilakukannya. Selebihnya disahkan kemudian diabaikan; setiap satu dinyatakan dalam jadual di bawah.
NameTypeRequiredDefaultDescription
urls
arrayRequired-
URL yang akan diambil. Antara 1 dan 50 entri; senarai yang lebih panjang ditolak dan bukannya dipotong.
Example: [{ "url": "https://example.com/widget-a", "id": "a" }]
batch_config
objectOptional-
Tetapan pelaksanaan bagi kelompok ini.
Example: { "concurrency": 5 }
extraction_template
objectOptional-
Medan yang akan dikeluarkan daripada setiap halaman dalam kelompok.
Example: { "fields": [{ "name": "price", "selector": ".price" }] }
output_config
objectOptional-
Diterima dan diabaikan sepenuhnya. Respons sentiasa JSON dalam bentuk yang ditunjukkan di bawah; `format`, `include_metadata`, `include_errors` dan `flatten_results` tidak memberi kesan.
Example: { "format": "json" }
options
objectOptional-
Diterima dan diabaikan, kecuali `javascript_enabled: true` menambah satu baris penjelasan pada `notes`. `user_agent`, `follow_redirects`, `respect_robots_txt` dan `rate_limit_per_domain` tidak mengubah cara pengambilan pada API REST terhoskan.
Example: { "javascript_enabled": false }
respect_robots
booleanOptionaltrue
Hormati robots.txt setiap tapak sasaran. Dibiarkan pada `true`, URL yang dilarang untuk `CrawlForge` dilangkau dan selebihnya kelompok itu diteruskan — permintaan tetap mengembalikan 200 dengan set keputusan separa dan bukannya 403, dan URL yang dilangkau tidak dicaj. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda.
Example: true

Model Pelaksanaan

Baik diketahui sebelum anda menentukan saiz kelompok — hujung ini berjalan dalam fungsi tanpa pelayan selama 30 saat.

Segerak
Satu permintaan masuk, hasil siap keluar. Tiada id kerja untuk ditinjau dan tiada webhook — batch_id ialah kunci pengambilan, bukan pemegang kerja.
Bajet pengambilan 20s
URL yang belum dimulakan sebelum bajet habis kembali dengan status skipped dan tidak dicaj. Setiap pengambilan individu tamat masa pada 8s.
Kegagalan adalah setiap URL
404, tamat masa atau badan yang tidak boleh dibaca menandakan entri itu failed. Panggilan itu sendiri masih mengembalikan 200.
Tiada JavaScript
Halaman diambil, bukan dipaparkan. Untuk halaman yang dipaparkan pada klien, gunakan scrape_with_actions atau pelayan MCP CrawlForge.

Contoh Permintaan

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/batch_scrape \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      { "url": "https://example.com/widget-a", "id": "a" },
      { "url": "https://example.com/widget-b", "id": "b" }
    ],
    "batch_config": { "concurrency": 5 },
    "extraction_template": {
      "fields": [
        { "name": "price", "selector": ".price" },
        { "name": "canonical", "selector": "link[rel=canonical]", "attribute": "href" }
      ]
    }
  }'

Contoh Respons

200 OK3,140ms
{
"success": true,
"data": {
"batch_id": "fd599a27-9ca9-4022-9a57-b02af57c387b",
"total": 3,
"succeeded": 2,
"failed": 1,
"skipped": 0,
"results": [
{
"id": "a",
"url": "https://example.com/widget-a",
"status": "success",
"http_status": 200,
"title": "Widget A — Acme",
"text": "Widget A$24.00In stock and ready to ship.",
"fields": {
"price": "$24.00",
"canonical": "https://example.com/widget-a",
"sku": null
},
"field_notes": [
"sku: xpath selectors are not supported on the hosted REST API — use a CSS selector"
]
},
{
"id": "b",
"url": "https://example.com/widget-b",
"status": "success",
"http_status": 200,
"title": "Widget B — Acme",
"text": "Widget B$31.50Backordered until March.",
"fields": {
"price": "$31.50",
"canonical": "https://example.com/widget-b",
"sku": null
}
},
{
"id": "c",
"url": "https://example.com/gone",
"status": "failed",
"http_status": 404,
"error": "HTTP 404"
}
],
"notes": [
"Results are stored for 24h and retrievable with get_batch_results (batch_id: fd599a27-9ca9-4022-9a57-b02af57c387b)."
],
"completed_at": "2026-08-27T02:09:44.001Z"
},
"credits_used": 15,
"credits_remaining": 990,
"processing_time": 3140
}
Field Descriptions
data.batch_idHantar ini kepada [get_batch_results](/docs/api-reference/tools/get-batch-results) dalam masa 24 jam untuk membaca semula set penuh
data.totalEntri yang dihantar — sentiasa sama dengan panjang `results`
data.skippedURL yang tidak sempat dicapai oleh bajet masa. Tidak dicaj
data.results[].id`id` anda jika anda memberikannya, jika tidak indeks tatasusunan sebagai rentetan
data.results[].status`success`, `failed` atau `skipped` — periksa ini bagi setiap entri, bukan status HTTP
data.results[].textTeks body yang kelihatan dengan script dan style dibuang, dipotong pada 5,000 aksara
data.results[].fieldsSatu kunci bagi setiap medan templat. `null` bermakna pemilih itu tidak sepadan dengan apa-apa
data.results[].field_notesHadir hanya apabila sesuatu medan tidak dapat digunakan — pemilih xpath, atau CSS yang ditolak oleh penghurai
data.notesCatatan peringkat kelompok, termasuk apa-apa yang anda minta tetapi tidak dilakukan oleh API terhoskan
credits_used5 bagi setiap URL yang dicuba — 3 URL di sini, tiada yang dilangkau, jadi 15

Pengendalian Ralat

Kelompok Tidak Sah (400 Bad Request)

VALIDATION_ERROR. Dibangkitkan oleh tatasusunan urls yang kosong, lebih daripada 50 entri, URL yang cacat, atau concurrency di luar 1-10. Tiada apa-apa diambil dan tiada apa-apa dicaj.

Storan Tidak Tersedia (503 Service Unavailable)

STORAGE_UNAVAILABLE. Hasil disimpan sebelum pengebilan, jadi jika storan itu tidak dapat dicapai kelompok ini ditolak dan bukannya dijalankan lalu hilang. Tiada apa-apa dicaj. Cuba semula.

Kelompok Gagal (500 Internal Server Error)

TOOL_ERROR. Kerosakan yang tidak dijangka. Masalah setiap URL tidak pernah muncul di sini — ia muncul sebagai entri failed dalam respons 200.

Dilarang oleh robots.txt (bukan ralat — URL itu dilangkau)

URL yang dilarang oleh robots.txt untuk CrawlForge ditinggalkan daripada kelompok dan bukannya menggagalkannya: panggilan itu tetap mengembalikan 200 dengan set keputusan separa dan URL yang dilangkau tidak dicaj, jadi baca keputusan setiap URL sebelum menganggap kelompok itu lengkap. Tetapkan respect_robots: false untuk mengatasinya bagi sasaran yang anda mempunyai perjanjian sendiri dengannya — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge: hos itu ditolak tanpa mengira nilai respect_robots, dan ia turut dilangkau serta tidak dicaj dengan cara yang sama, dengan hos itu dinamakan dalam medan error keputusan tersebut. data.notes merumuskan berapa banyak URL yang dilangkau dan sebabnya.

Nota: Respons 200 tidak bermakna setiap URL berjaya. Baca succeeded, failed dan skipped — atau status setiap entri — sebelum menganggap kelompok itu selesai.

Kos Credit

5 credits
5 credits bagi setiap URL yang dicuba
Kelompok 10 URL berharga 50 credits. URL yang kembali sebagai skipped kerana bajet masa habis tidak dicaj, dan kelompok yang ditolak semasa pengesahan tidak dikenakan apa-apa. URL yang gagal dicaj — pengambilan telah dicuba.

Apa yang Disertakan:

Sehingga 50 URL setiap panggilan, diambil secara serentak

Tajuk dan teks body setiap halaman (5,000 aksara)

Pengekstrakan medan CSS dengan nota setiap medan

Status dan kod HTTP setiap URL

Storan hasil selama 24 jam untuk get_batch_results

Cadangan Pelan:

Free Plan: 1,000 credits percubaan sekali sahaja = 200 URL

Hobby Plan: 5,000 credits = 1,000 URL ($19/mo)

Professional Plan: 50,000 credits = 10,000 URL ($99/mo)

Alat Berkaitan

get_batch_results
Baca semula hasil tersimpan sesuatu kelompok dalam masa 24 jam (1 credit)
map_site
Temui URL untuk disuapkan ke dalam kelompok (2 credits)
scrape
Satu URL, lebih banyak format output dan pilihan (2 credits)
crawl_deep
Ikut pautan sendiri dan bukannya membekalkan senarai (4 credits)
Bersedia untuk mencuba batch_scrape? Daftar secara percuma dan dapatkan 1,000 credits untuk mula membina.

Footer

CrawlForge MCP

Web scraping gred perusahaan untuk Ejen AI. 29 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.