Pada halaman ini
Scraper tradisional ialah satu set arahan: ambil URL ini, baca .product-price, pulangkan teksnya. Agent scraper pula ialah satu matlamat: cari harga semasa, tidak kira rupa halaman itu hari ini.
Perbezaan itu bunyinya akademik sahaja -- sehinggalah tapak tersebut menjalani reka bentuk semula. Yang menurut arahan akan memulangkan null dan pipeline anda terus senyap. Yang mengejar matlamat pula akan melihat halaman itu, perasan bahawa harganya telah berpindah ke dalam modal di sebalik butang "Lihat harga", mengkliknya, dan memulangkan nombor tersebut.
Ia juga bunyinya seperti durian runtuh, sedangkan bukan. Agent scraper lebih perlahan, lebih mahal setiap halaman, dan sesekali salah dengan penuh yakin -- sesuatu yang selector rosak tidak pernah lakukan. Panduan ini menerangkan apa sebenarnya agent scraper itu, tiga cara membinanya, kod yang benar-benar berfungsi untuk dua daripadanya, dan -- bahagian yang kebanyakan penulisan lain langkau -- keadaan khusus yang sepatutnya membuat anda tidak menggunakannya langsung.
Kandungan
- Apakah itu agent scraper?
- Bagaimana agent scraper berfungsi?
- Agent scraper vs scraper tradisional
- Tiga cara membina agent scraper
- Bina satu dengan satu panggilan sahaja
- Bina gelung ejen anda sendiri
- Mengapa agent scraper gagal dalam produksi?
- Berapakah kos agent scraper?
- Bila anda tidak patut guna agent scraper?
- Lima perlindungan sebelum anda melancarkannya
- Soalan lazim
Apakah itu agent scraper?
Agent scraper ialah scraper web yang dipacu oleh gelung penaakulan LLM, bukan oleh skrip tetap. Anda berikan objektif dalam bahasa biasa -- "cari setiap tingkat harga di tapak ini dan apa yang termasuk dalam setiap satu" -- dan ia yang menentukan halaman mana hendak diambil, bila perlu naik taraf kepada pelayar, bila maklumatnya sudah cukup, dan bagaimana hendak membentuk jawapan. Tiada selector CSS, tiada XPath, tiada penyelenggaraan setiap tapak.
Tiga sifat memisahkannya daripada segala yang datang sebelum ini:
- Ia merancang. Urutan permintaan dipilih semasa masa jalan berdasarkan matlamat, bukan dikodkan lebih awal.
- Ia menyesuaikan diri. Satu 403, satu hasil kosong, atau satu susun atur di luar jangkaan menjadi input kepada keputusan seterusnya, bukan ralat maut.
- Ia berhenti pada syarat, bukan pada bilangan. Ia berhenti apabila objektif dipenuhi -- dan itulah sebabnya anda wajib mengenakan had keras dari luar.
Istilah ini digunakan secara longgar, jadi eloklah kita tepat tentang apa yang bukan agent scraper. Scraper yang memanggil LLM sekali untuk mengemas HTML yang telah diekstrak ialah scraping berbantukan AI -- aliran kawalannya masih skrip anda. Skrip automasi pelayar dengan LLM memilih selector semasa pembangunan pula ialah scraping janaan AI -- LLM menulis kod yang kemudiannya berjalan secara deterministik. Hanya apabila model itu berada di dalam gelung, memilih tindakan seterusnya pada setiap pusingan, barulah anda benar-benar mempunyai agent scraper.
Bagaimana agent scraper berfungsi?
Setiap agent scraper, tidak kira apa rangka kerjanya, menjalankan gelung enam peringkat yang sama:
- Matlamat. Satu objektif dalam bahasa biasa, serta URL benih pilihan.
- Rancang. Model menentukan tindakan pertama -- biasanya satu carian atau satu pengambilan.
- Bertindak. Ia memanggil alat: ambil URL, jalankan carian, pandu pelayar, naik taraf melepasi tembok anti-bot.
- Perhati. Alat memulangkan kandungan, sebaiknya sebagai markdown bersih dan bukan HTML mentah, kerana setiap bait akan mendarat dalam tetingkap konteks.
- Nilai. Sudahkah objektif dipenuhi? Jika belum, apa yang kurang, dan tindakan mana yang menutup jurang itu?
- Keluarkan. Pulangkan prosa atau, lebih baik lagi, JSON yang disahkan terhadap skema yang anda bekalkan.
Peringkat 2 hingga 5 berulang. Dan gelung itu tiada had secara lalai -- inilah perkara paling penting untuk difahami tentang menjalankannya dalam produksi.
Mod kegagalannya bukan kerana ejen tersangkut. Sebaliknya kerana ejen itu kekal produktif: ia terus menjumpai satu lagi halaman yang nampak relevan, lalu menghabiskan bajet anda sambil melakukan kerja yang memang munasabah tetapi tidak anda minta. Justeru had keras itu tempatnya di lapisan orkestrasi, bukan sekali-kali di dalam prompt. Alat agent CrawlForge menguatkuasakan tiga daripadanya di lapisan infrastruktur, di tempat yang model tidak boleh berunding:
| Had | Nilai | Kenapa ia wujud |
|---|---|---|
maxSteps | 10 (lalai 5) | Mengehadkan lelaran penaakulan, supaya gelung yang keliru tidak berpusing tanpa henti |
maxUrls | 20 (lalai 10) | Mengehadkan halaman yang diambil, supaya keluasannya tidak meletup |
| Jam dinding | 120 saat | Mengehadkan jumlah masa jalan, tidak kira apa yang model sedang buat |
Meminta model dengan baik supaya "periksa beberapa halaman sahaja" bukanlah satu had. Satu nombor yang dikuatkuasakan oleh masa jalan barulah had.
Agent scraper vs scraper tradisional
Tiada satu pun pendekatan yang mengatasi sepenuhnya. Kedua-duanya gagal ke arah bertentangan, dan itulah yang menjadikan pilihan ini boleh diuruskan.
| Scraper tradisional | Agent scraper | |
|---|---|---|
| Gaya arahan | Selector dan langkah eksplisit | Objektif bahasa biasa |
| Masa persediaan | Berjam hingga berhari setiap tapak | Beberapa minit |
| Menghadapi reka bentuk semula | Rosak secara senyap | Selalunya menyesuaikan diri |
| Kadar pemprosesan | Ribuan halaman/jam | Puluhan hingga ratusan halaman/jam |
| Kos setiap halaman | Pecahan satu sen | Beberapa sen |
| Determinisme | Input sama, output sama | Input sama, selalunya output sama |
| Cara ia gagal | Tidak pulangkan apa-apa, dengan jelas | Pulangkan sesuatu yang munasabah, secara senyap |
| Struktur tapak tidak diketahui | Perlu diterokai dahulu | Meneroka sendiri |
Baris terakhir tentang cara kegagalan itulah yang perlu dihadam. Selector yang rosak akan mengumumkan dirinya sendiri -- kiraan baris anda jatuh ke sifar dan pemantauan pun berbunyi. Medan yang direka-reka tidak begitu. Ia tiba dengan jenis yang betul, format yang munasabah, dan salah. Mana-mana agent scraper yang menyuap keputusan penting memerlukan pengesahan di hilir, dan kita akan kembali kepadanya dalam bahagian perlindungan.
Tiga cara membina agent scraper
| Seni bina | Apa yang anda tulis | Kawalan | Sesuai untuk |
|---|---|---|---|
| Alat ejen terurus | Satu prompt | Rendah | Penyelidikan, ekstraksi sekali sekala, struktur tapak tidak diketahui |
| Gelung tali pinggang alat MCP | Gelungnya; alat ditemui sendiri | Sederhana | Pipeline produksi dengan logik naik taraf tersendiri |
| Ejen pemandu pelayar | Prompt + sesi pelayar | Tinggi | Aliran log masuk, borang berbilang langkah, konfigurator |
Kebanyakan pasukan patut bermula dengan yang pertama, naik ke yang kedua apabila memerlukan aliran kawalan tersendiri, dan hanya beralih ke yang ketiga apabila datanya benar-benar berada di sebalik interaksi yang tidak mampu dicapai oleh pengambilan biasa. Yang ketiga juga paling perlahan dan paling mahal dengan jurang yang lebar -- satu langkah pelayar memakan saat, sedangkan satu pengambilan memakan milisaat.
Pilihan tengah itulah tempat Model Context Protocol membuktikan nilainya. Oleh sebab pelayan MCP mendedahkan skema alat bertaip yang dibaca oleh ejen semasa masa jalan, gelung anda tidak perlu pembalut yang ditulis tangan bagi setiap endpoint -- ejen sendiri akan menemui bahawa stealth_mode wujud dan apa yang diterimanya. Kami menghuraikan seni bina itu dalam MCP vs REST untuk scraping, dan membandingkan pilihan yang ada dalam alat web scraping terbaik untuk ejen AI.
Bina satu dengan satu panggilan sahaja
Agent scraper terpantas ialah yang anda tidak perlu tulis. CrawlForge menyediakan agent sebagai salah satu daripada 27 alat MCP-nya: ia merancang cariannya sendiri, mengambil dan menapis halaman, lalu mensintesis satu jawapan -- tanpa perlu URL, dan dengan had keras di atas sudah pun dikuatkuasakan.
Setelah disambung ke Claude Code, Claude Desktop atau Cursor, versi bahasa biasa itulah keseluruhan antara mukanya:
Find the current pricing tiers for Vercel, Netlify, and Railway,
and tell me what each tier includes.Di sebalik tabir, itu diterjemahkan kepada satu panggilan alat:
{
"name": "agent",
"arguments": {
"prompt": "Find the current pricing tiers for Vercel, Netlify and Railway, and what each tier includes.",
"maxUrls": 12,
"maxSteps": 6
}
}Prosa memadai jika manusia yang membaca jawapannya. Untuk pipeline pula, hantar satu schema dan ejen akan memulangkan JSON yang disahkan -- bezanya antara satu perenggan yang perlu anda hurai dan satu rekod yang boleh terus anda masukkan:
{
"name": "agent",
"arguments": {
"prompt": "Extract every pricing tier for the three vendors below.",
"urls": [
"https://vercel.com/pricing",
"https://www.netlify.com/pricing/",
"https://railway.com/pricing"
],
"maxUrls": 12,
"schema": {
"type": "object",
"properties": {
"tiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendor": { "type": "string" },
"tier": { "type": "string" },
"monthlyUsd": { "type": "number" },
"includes": { "type": "array", "items": { "type": "string" } }
},
"required": ["vendor", "tier"]
}
}
}
}
}
}Dua perincian yang berbaloi diketahui. urls benih menyempitkan ruang carian apabila anda sudah tahu di mana datanya berada -- ejen tetap menentukan cara membaca halaman itu, cuma berhenti meneka dari mana hendak bermula. Manakala model: "pro" menukar gelung lalai kepada penyelidikan berbilang sumber yang penuh; ia memakan lebih banyak masa dan credits, jadi gunakannya apabila keluasan lebih penting daripada latensi.
Satu panggilan agent ialah 8 credits, rata, sama ada ia membaca tiga halaman atau dua puluh.
Bina gelung ejen anda sendiri
Apabila anda memerlukan aliran kawalan tersendiri -- dasar cuba semula anda, syarat berhenti anda, hasil ditulis ke storan anda sendiri -- anda tulis gelungnya dan perlakukan CrawlForge sebagai lapisan alat. Corak yang penting di sini ialah tangga naik taraf: mula dengan yang murah, naik hanya apabila gagal.
const BASE = 'https://www.crawlforge.dev/api/v1/tools';
type Rung = { tool: string; credits: number; body: (url: string) => object };
// Cheapest first. Each rung costs more and handles more hostile pages.
const LADDER: Rung[] = [
{ tool: 'scrape', credits: 2, body: (url) => ({ url, formats: ['markdown'] }) },
{
tool: 'scrape_with_actions',
credits: 5,
body: (url) => ({ url, actions: [{ type: 'scroll', delay: 1500 }] }),
},
{
tool: 'stealth_mode',
credits: 5,
body: (url) => ({ url, stealth_config: { anti_detection_level: 'advanced' } }),
},
];
async function call(tool: string, body: object) {
const res = await fetch(`${BASE}/${tool}`, {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY ?? '',
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
});
return res.json();
}
async function fetchWithEscalation(url: string) {
let spent = 0;
for (const rung of LADDER) {
const result = await call(rung.tool, rung.body(url));
spent += rung.credits;
// A 200 with 200 characters of "enable JavaScript" is still a failure.
const markdown = result?.data?.markdown ?? '';
if (result.success && markdown.length > 500) {
return { markdown, spent, via: rung.tool };
}
}
return { markdown: null, spent, via: null };
}Semakan markdown.length > 500 itulah bahagian yang orang tinggalkan, dan di situlah kebanyakan agent scraper buatan sendiri rosak secara senyap. Halaman anti-bot memulangkan HTTP 200. Satu halaman cabaran ialah respons berjaya yang tidak mengandungi data, jadi res.ok tidak memberitahu anda apa-apa -- anda perlu memeriksa apa yang kembali sebelum memutuskan anak tangga itu berjaya. (Untuk gambaran penuh tentang apa yang dihadapi oleh proses naik taraf ini, lihat memintas pengesanan anti-bot dengan mod senyap.)
Setelah lapisan pengambilan selesai, gelung ejen itu sendiri kecil sahaja: berikan matlamat kepada model, biar ia memilih URL, salurkan setiap satu melalui fetchWithEscalation, dan berhenti apabila skema dipenuhi atau bajet langkah anda habis. Tangga naik taraf inilah yang menjadikannya mampu milik -- kebanyakan halaman selesai di anak tangga pertama dengan 2 credits, dan anda hanya bayar 5 untuk yang melawan.
Mengapa agent scraper gagal dalam produksi?
Empat mod kegagalan, kasarnya mengikut kekerapan ia menggigit.
Kecerdasan tidak mengalahkan pengecapan jari. Inilah salah faham yang paling banyak merugikan pasukan. Perlindungan bot menilai cap jari TLS, ketekalan API pelayar, pemasaan permintaan, dan entropi pengepala -- tiada satu pun daripadanya dipengaruhi oleh LLM. Ejen yang memandu Chromium headless biasa dikesan pada kadar yang sama seperti mana-mana Chromium headless lain, kadangkala lebih tinggi, kerana corak pelayaran ejen (terus ke elemen sasaran, tanpa menatal, pemasaan tidak sekata) kelihatan kurang seperti manusia berbanding skrip. ScrapeWise, yang menjual infrastruktur scraping terurus, melaporkan kadar sekatan 61–74% bagi ejen tanpa bantuan terhadap sasaran e-dagang yang dilindungi Cloudflare dan Akamai dalam ujian mereka sendiri pada April 2026. Anggaplah penanda aras terbitan vendor sebagai petunjuk arah dan bukan muktamad, tetapi mekanismenya munasabah: anda membayar kos inferens bagi kerja yang mati di WAF, sebelum ekstraksi sempat bermula.
Ekonominya terbalik apabila berskala. Scraping berasaskan ejen murah untuk ratusan halaman dan membinasakan untuk berjuta-juta, kerana kos inferens LLM adalah setiap halaman dan tidak dilunaskan. Pipeline deterministik yang dibina sekali dan diselenggara sesekali mengalahkan gelung penaakulan sebanyak satu magnitud pada volum tinggi. Titik persilangannya lebih rendah daripada jangkaan kebanyakan pasukan -- lihat jadual kos di bawah.
Jawapan munasabah yang salah. Ejen yang tidak menemui sesuatu medan berkemampuan untuk menyimpulkannya daripada teks di sekeliling. Outputnya sah mengikut skema, jenisnya betul, dan palsu. Scraper berasaskan selector tidak mampu melakukan kesilapan ini; ia sekadar tidak memulangkan apa-apa.
Latensi menolak kerja berfrekuensi tinggi. Inferens menambah beberapa saat setiap halaman. Apa-apa yang memerlukan penyegaran bawah seminit merentas banyak URL -- pengawasan harga langsung, ketersediaan stok -- tempatnya dalam pipeline deterministik dengan ejen sejauh mungkin daripada laluan panas.
Ada pertimbangan kelima yang bukan mod kegagalan tetapi satu peralihan landskap: semakin banyak tapak membezakan trafik ejen daripada trafik perangkak dan melayannya secara berbeza. Laporan 2026 State of AI Traffic oleh HUMAN Security meletakkan pertumbuhan trafik ejen AI tahun ke tahun pada 7,851%, sambil menyatakan bahawa ejen berinteraksi dengan tapak sedangkan perangkak hanya membacanya. Jangkakan dasar capaian yang mendasari kerja scraping anda akan terus berubah. Panduan kami tentang sama ada web scraping sah di sisi undang-undang pada 2026 merangkumi sudut pematuhan.
Berapakah kos agent scraper?
Inilah kiraan jujurnya, menggunakan kos credits rata setiap panggilan CrawlForge. Angka dolar menganggap pelan Hobby pada $19 untuk 5,000 credits ($0.0038/credit); pada Professional ($99 untuk 50,000) setiap angka turun lebih kurang 48%.
| Tugas | Pendekatan | Credits | Anggaran kos |
|---|---|---|---|
| Jawab satu soalan penyelidikan | 1× agent (≤20 halaman) | 8 | $0.03 |
| Laporan mendalam berbilang sumber | 1× deep_research | 10 | $0.04 |
| Gelung sendiri: carian + 8 halaman | 1× search_web + 8× scrape | 21 | $0.08 |
| Sama, tetapi terlanggar 2 tembok bot | + 2× stealth_mode | 31 | $0.12 |
| Scrape 100 URL yang diketahui | 100× scrape | 200 | $0.76 |
| Scrape 100 URL yang diketahui | 4× batch_scrape (25 setiap satu) | 20 | $0.08 |
Baca dua baris terakhir itu bersama-sama, kerana di situlah terkandung keseluruhan pengajarannya. Output yang sama; sepersepuluh kosnya. Sebaik sahaja anda tahu URL mana yang anda mahu, ejen ialah alat yang salah -- ekstraksi berkelompok 10× lebih murah untuk 100 halaman yang sama itu.
Daripadanya terhasil satu peraturan yang kemas: guna ejen untuk mengetahui apa yang perlu diambil, guna alat berkelompok untuk mengambilnya. Penemuan ialah tempat penaakulan membayar balik kosnya. Volum ialah tempat ia memufliskan anda. Satu larian yang menggunakan agent untuk mengenal pasti 100 URL relevan dan kemudian batch_scrape untuk menariknya berharga 28 credits -- kira-kira sebelas sen -- sedangkan versi ejen semata-mata bagi kerja yang sama berharga 40 dan mengambil masa jauh lebih lama.
Bila anda tidak patut guna agent scraper?
Langkau ejen sepenuhnya apabila mana-mana daripada ini benar:
- Struktur tapak stabil dan diketahui. Selector yang anda tulis sekali dan sentuh dua kali setahun lebih murah dan lebih pantas daripada menaakul tentang susun atur yang sama pada setiap larian.
- Anda perlukan lebih daripada beberapa ribu halaman sehari. Kos inferens dan latensi kedua-duanya berskala secara linear dan kedua-duanya tidak dilunaskan.
- Determinisme ialah satu keperluan. Pelaporan kewangan, pematuhan, apa-apa yang diaudit. "Selalunya jawapan yang sama" bukan sifat yang boleh diterima.
- Selang penyegaran kurang seminit. Guna
track_changesdengan diff deterministik sebaliknya. - Outputnya menyuap keputusan automatik tanpa semakan manusia. Bukan tidak boleh sama sekali -- tetapi hanya dengan pengesahan yang diterangkan di bawah.
Corak produksi yang paling kukuh bukanlah ejen-atau-skrip. Sebaliknya ia ejen yang berjalan sekali untuk menemui struktur dan menjana spesifikasi ekstraksi deterministik, serta kerja deterministik berjadual yang melaksanakannya, dengan ejen dipanggil semula hanya apabila kerja deterministik itu mula gagal. Anda membayar untuk penaakulan apabila tapak berubah, bukan pada setiap baris.
Lima perlindungan sebelum anda melancarkannya
- Kuatkuasakan bajet di lapisan orkestrasi. Langkah, URL, dan jam dinding, semuanya di luar prompt. Had yang boleh dipujuk oleh model bukanlah had.
- Sentiasa hantar skema output. Output berstruktur menukar "adakah ia berjaya?" kepada satu pengesahan yang boleh anda automasikan. Tolak dan cuba semula apabila skema gagal, dan bukannya menyimpan prosa.
- Sahkan terhadap satu medan yang diketahui. Masukkan satu nilai dalam skema yang boleh anda sahkan secara berasingan -- SKU produk, tajuk halaman, simbol mata wang. Jika medan itu salah, buang keseluruhan rekod; ejen sedang membaca sesuatu yang lain daripada yang anda sangkakan.
- Log setiap URL yang diambil oleh ejen. Apabila sesuatu jawapan salah, jejak pengambilan itulah satu-satunya cara membezakan halaman yang buruk daripada penaakulan yang buruk. Tanpanya, anda sedang menyahpepijat kotak hitam.
- Cache secara agresif. Larian ejen mengulangi kerja merentas panggilan. Cache mengikut URL dengan TTL pendek lazimnya memotong separuh perbelanjaan credits pada penyelidikan berulang.
Cuba sendiri
Anda tidak perlukan rangka kerja, ladang pelayar, atau kontrak proxy untuk menjalankan agent scraper pertama anda. CrawlForge mendedahkan agent bersama 26 alat lain melalui satu sambungan MCP, dengan had keselamatan yang dikuatkuasakan oleh masa jalan dan credits rata setiap panggilan supaya anda boleh menetapkan harga sesuatu larian sebelum melancarkannya.
Mula secara percuma dengan 1,000 credits -- cukup untuk 125 larian ejen -- dan sambungkannya ke Claude, Cursor, atau gelung anda sendiri dalam masa kira-kira dua minit.
Cuba sendiri — tiada pendaftaran diperlukan
Jalankan mana-mana daripada 28 alat scraping dan pengekstrakan CrawlForge dalam playground, kemudian mula secara percuma dengan 1,000 credits.
1,000 credits percuma • Sekali sahaja • Tiada kad kredit diperlukan
Tag
Tentang Penulis
Kekal dikemas kini dengan pandangan terkini
Dapatkan tutorial, kemas kini produk dan petua web scraping terus ke peti masuk anda.
Tiada spam. Berhenti melanggan bila-bila masa.