Langkau ke kandungan
Alat Asas1 credit

fetch_url

Ambil dan hurai halaman web dengan pengendalian ubah hala automatik, kawalan tamat masa dan pengepala tersuai. Sesuai untuk mendapatkan kandungan HTML daripada mana-mana URL yang boleh diakses umum.

Kes Penggunaan

Mendapatkan Kandungan Halaman

Ambil kandungan HTML daripada mana-mana halaman web untuk pemprosesan atau analisis lanjut

Pengambilan Data API

Buat permintaan GET ke API REST dan dapatkan respons JSON

Semakan Kesihatan

Pantau ketersediaan tapak web dan masa respons

Muat Turun Mudah

Muat turun aset statik, dokumen atau kandungan halaman

Endpoint

POST/api/v1/tools/fetch_url
Auth Required
1 req/s pada pelan Free
1 credit

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
URL untuk diambil (mesti termasuk protokol: http:// atau https://)
Example: https://example.com
headers
objectOptional-
Pengepala HTTP tersuai untuk disertakan dalam permintaan
Example: {"Accept": "text/html", "User-Agent": "MyBot/1.0"}
timeout
numberOptional10000
Tamat masa permintaan dalam milisaat (1000-30000)
Example: 15000
follow_redirects
booleanOptionaltrue
Sama ada untuk mengikuti ubah hala HTTP secara automatik
Example: true
user_agent
stringOptional-
Pengepala User-Agent tersuai (mengatasi lalai)
Example: Mozilla/5.0 (compatible; CrawlBot/1.0)
respect_robots
booleanOptionaltrue
Hormati robots.txt tapak sasaran. Dibiarkan pada `true`, laluan yang dilarang untuk `CrawlForge` ditolak dengan 403 sebelum apa-apa diambil dan tiada credits 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
max_inline_chars
numberOptional40000
Hasil terbesar yang dikembalikan sebaris, dalam aksara JSON-nya (1,000-10,000,000). Melebihinya, respons membawa `preview` (`max_inline_chars` aksara pertama badan), `result_handle`, `total_chars`, `truncated: true` dan `expires_at`, dan [read_result](/docs/api-reference/tools/read-result) membaca selebihnya dengan 1 credit setiap panggilan. Hasil tersimpan disimpan selama 1 jam.
Example: 40000

Contoh Permintaan

cURL

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/fetch_url \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "timeout": 15000,
    "follow_redirects": true
  }'

TypeScript

fetchUrl.tsTypescript
// npm install crawlforge-sdk
import { CrawlForge } from 'crawlforge-sdk';

const client = new CrawlForge({ apiKey: process.env.CRAWLFORGE_API_KEY });

const result = await client.fetchUrl({
  url: 'https://example.com',
  timeout: 15000,
  headers: {
    'Accept': 'text/html',
    'Accept-Language': 'en-US',
  },
});

// result.data is untyped in crawlforge-sdk 0.1 — its shape is the Response Example below.
const page = result.data as { url: string; status: number; content_length: number };
console.log('Page fetched:', page.url);
console.log('Status:', page.status);
console.log('Content length:', page.content_length);
console.log('Credits used:', result.creditsUsed);
console.log('Credits remaining:', result.creditsRemaining);

Python

fetch_url.pyPython
# pip install crawlforge
from crawlforge import CrawlForge

client = CrawlForge()  # reads CRAWLFORGE_API_KEY

result = client.fetch_url(
    url='https://example.com',
    timeout=15000,
    headers={
        'Accept': 'text/html',
        'Accept-Language': 'en-US',
    },
)

# result.data is a plain dict — its shape is the Response Example below.
page = result.data
print(f"Page fetched: {page['url']}")
print(f"Status: {page['status']}")
print(f"Content length: {page['content_length']}")
print(f"Credits used: {result.credits_used}")
print(f"Credits remaining: {result.credits_remaining}")

Contoh Respons

200 OK245ms
{
"success": true,
"data": {
"url": "https://example.com",
"status": 200,
"status_text": "OK",
"headers": {
"content-type": "text/html; charset=UTF-8",
"content-length": "1256",
"server": "nginx"
},
"content": "Example Domain......",
"content_length": 1256,
"content_type": "text/html; charset=UTF-8",
"redirected": false,
"final_url": "https://example.com",
"response_time_ms": 245
},
"credits_used": 1,
"credits_remaining": 999,
"processing_time": 245
}
Field Descriptions
data.urlURL asal yang diminta
data.statusKod status HTTP bagi respons
data.contentKandungan HTML penuh halaman
data.content_lengthSaiz kandungan dalam bait
data.final_urlURL akhir selepas mengikuti ubah hala
data.response_time_msBerapa lama sasaran mengambil masa untuk membalas dan menghantar badannya, dalam milisaat
credits_usedCredits ditolak untuk permintaan ini (1 setiap pengambilan)
credits_remainingBaki credit anda yang masih ada

Pengendalian Ralat

URL Tidak Sah (400 Bad Request)

Format URL tidak sah. Pastikan ia termasuk protokol (http:// atau https://)

Ralat Tamat Masa (500 Internal Server Error)

Permintaan mengambil masa lebih lama daripada tamat masa yang ditentukan. Cuba tingkatkan parameter timeout.

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.

Disekat oleh robots.txt (403 Forbidden)

robots.txt tapak sasaran melarang laluan ini untuk CrawlForge. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots.

Kos Credit

1 credit
1 credit setiap permintaan
Setiap permintaan fetch_url yang berjaya berkos 1 credit, tanpa mengira saiz halaman atau masa respons.

Free Plan: 1,000 credit percubaan sekali sahaja = 1,000 permintaan

Hobby Plan: 5,000 credits/bulan = 5,000 permintaan ($19/bln)

Professional Plan: 100,000 credits/bulan = 100,000 permintaan ($99/bln)

Business Plan: 500,000 credits/bulan = 500,000 permintaan ($399/bln)

Alat Berkaitan