Peraturan Operasi Perangkak
Apa yang CrawlForge lakukan apabila ia mengambil halaman bagi pihak anda — lapan peraturan asas, sebab bagi setiap satu, dan cara ia dikuatkuasakan.
Lapan peraturan asas
Peraturan ini mengehadkan apa yang kami bina, bukan hanya apa yang kami minta pelanggan lakukan. Ciri yang melanggar mana-mana satu daripadanya tidak akan dihantar, walau sebanyak mana pun permintaannya.
Crawl-delay dan Retry-After hos itu sendiri dipatuhi, dengan nilai lalai yang berhemat di bawahnya.G1 — Halaman awam tanpa log masuk sahaja
Tiada akses berasaskan kelayakan ke platform yang termanya melarangnya. Kami tidak menerima kelayakan anda bagi tapak sasaran, kami tidak memegang akaun pada platform pihak ketiga, dan tiada alat dibina untuk log masuk bagi pihak anda.
Sebabnya: memintas pengesahan ialah garis di mana scraping berhenti menjadi soal kontrak dan bertukar menjadi soal Computer Fraud and Abuse Act. Melanggar terma ialah pertikaian antara dua pihak; akses tanpa kebenaran ialah kategori risiko yang berbeza, dan bukan risiko yang kami pikul bagi pelanggan.
Cara ia dikuatkuasakan: tiada alat menerima kelayakan tapak sasaran sebagai parameter, dan CrawlForge tidak menyimpan sebarang kelayakan. Konteks pelayar yang dibuka oleh stealth_mode bersifat sementara — backend pelaksanaan mengitar semula konteks itu — jadi tiada sesi log masuk kekal untuk diguna semula. scrape_with_actions menjalankan senarai tindakan yang anda berikan: menggunakannya untuk log masuk ke platform yang termanya melarang akses automatik melanggar Polisi Penggunaan Boleh Terima dan menjadi alasan penggantungan akaun.
G2 — Tiada penyelesaian CAPTCHA, pemalsuan token atau pintasan dinding bayaran
Kami tidak menyepadukan perkhidmatan penyelesaian CAPTCHA, tidak memalsukan atau mengulang main token cabaran anti-bot, dan tidak membina pintasan dinding bayaran.
Sebabnya: semua ini ialah kawalan akses teknikal. Mengalahkan salah satunya bukan pembetulan keserasian — ia keputusan untuk mengatasi jawapan yang telah pemilik tapak nyatakan. Itu bukan ciri yang kami hantar, dan menghantarnya akan meragukan setiap peraturan lain di halaman ini.
Cara ia dikuatkuasakan: tiada penyedia penyelesaian CAPTCHA menjadi kebergantungan API atau pelayan MCP. stealth_mode wujud untuk membuatkan pelayar sebenar memaparkan halaman seperti pelayar sebenar — pengepala, port pandangan dan pemasaan yang realistik — pada tapak yang gagal dengan pengambilan HTTP biasa. Ia tidak menyelesaikan cabaran: halaman yang memulangkan cabaran akan memulangkan cabaran itu kepada anda.
G3 — Utamakan API yang berdokumentasi berbanding scraping
Apabila sesebuah sasaran menerbitkan API, alat yang meliputi sasaran itu menggunakan API tersebut.
Sebabnya: API lebih murah bagi setiap rekod, tepat dan bukan anggaran terbaik, stabil terhadap perubahan markup, dan dibenarkan secara semula jadi — penerbitnya sendiri menentukan apa yang didedahkan. Melakukan scraping ke atas sumber yang menawarkan API ialah pilihan kejuruteraan yang lebih lemah sebelum ia menjadi soal etika.
Cara ia dikuatkuasakan: reddit_search membaca kandungan Reddit melalui API data JSON awam dan bukan dengan scraping reddit.com, yang menyekat akses automatik. search_web dan serp_rank memanggil API carian dan bukan mengambil halaman keputusan. Liputan baharu ditentukan secara API dahulu: laluan scraping hanya ditulis apabila tiada API meliputi data tersebut.
G4 — Mengenal pasti diri dengan jujur
Setiap permintaan keluar membawa satu User-Agent yang jujur: nama produk sebenar, versi, dan URL hubungan.
Sebabnya: tapak yang ingin menyekat kami mesti mampu berbuat demikian. Identiti yang berputar atau menyamar merampas keupayaan pemilik tapak untuk membuat keputusan tentang kami, dan menjadikan G5 dan G7 tidak dapat disahkan dari luar — senarai sekatan yang tidak dapat dikenali bukan senarai sekatan.
Cara ia dikuatkuasakan: setiap alat pengambilan melalui satu pembantu pengambilan berkongsi, yang menghantar identiti di bawah — nama produk, versi dan URL hubungan. Jika anda mempunyai perjanjian sendiri dengan sesebuah sasaran, pengecualian userAgent bagi setiap permintaan tersedia: itu ialah pengisytiharan anda kepada sasaran tersebut, dibuat secara eksplisit, bukan tetapan lalai produk.
Anda tidak perlu sekadar mempercayai pengepala itu: Mengesahkan perangkak CrawlForge menunjukkan kepada pemilik tapak cara menyemak sesuatu permintaan terhadap kunci tandatangan kami yang diterbitkan, cara menyekat kami dengan satu peraturan robots.txt, dan ke mana hendak menulis untuk penarikan diri yang kekal.
Bagaimana CrawlForge mengenal pasti dirinya
User-Agent yang dihantar oleh API REST. Pelayan MCP menghantar versi pakejnya sendiri dalam bentuk yang sama — segmen versi berbeza antara kedua-duanya, token produk CrawlForge tidak.
User-Agent: CrawlForge/1.0.0 (+https://crawlforge.dev)G5 — Patuhi robots.txt secara lalai
Setiap alat pengambilan memeriksa robots.txt sebelum ia mengambil. Pengecualian dibuat bagi setiap permintaan, memulangkan amaran dalam respons, dan direkodkan terhadap API key yang memintanya.
Sebabnya: tetapan lalai mestilah kepatuhan, kerana kebanyakan trafik berjalan pada tetapan lalai. Menjadikan pengecualian itu eksplisit dan berekod mengubahnya menjadi keputusan anda yang berdokumentasi tentang sasaran yang anda kenali — bukan pilihan senyap seluruh produk yang kami buat bagi pihak anda.
Cara ia dikuatkuasakan: peraturan bagi setiap asal diambil sekali dan dicache, kemudian dipadankan dengan token produk kami. robots.txt yang tiada, tidak dapat dicapai, terlalu besar atau bukan 200 dianggap tiada sekatan — tapak yang tidak dapat menyajikan fail itu belum menyatakan apa-apa sekatan. URL yang dilarang akan dilangkau, dan apabila titik masuk itu sendiri dilarang, permintaan gagal sebelum apa-apa diambil, jadi perangkakan yang disekat tidak menelan kos credits.
Menyekat CrawlForge daripada tapak anda
Tambahkan ini pada robots.txt anda. Nama kumpulan itu ialah token produk CrawlForge, yang dipadankan oleh API REST dan pelayan MCP — jadi satu peraturan ini menyekat setiap alat CrawlForge pada kedua-dua permukaan. Jika anda sudah menyekat token CrawlForge-Bot yang telah bersara, sekatan itu masih berkuat kuasa — larangan daripada mana-mana satu daripada dua nama itu dipatuhi, jadi anda tidak perlu mengubah apa-apa.
User-agent: CrawlForge
Disallow: /G6 — Kadar yang sopan secara lalai
Keserentakan dan lengah masa menggunakan nilai lalai yang berhemat, dan isyarat kadar hos itu sendiri — Crawl-delay dalam robots.txtnya, Retry-After pada respons 429 atau 503 — dipatuhi pada kedua-dua permukaan.
Sebabnya: beban yang kami kenakan ialah beban yang dibayar oleh orang lain — dalam lebar jalur, dalam CPU pelayan asal, dan dalam panggilan kecemasan sesiapa yang bertugas. Perangkak yang mengabaikan Retry-After yang baru diberikan kepadanya bukanlah pantas, ia cuma biadab pada pemprosesan yang sama.
`Retry-After`: ia direkodkan daripada setiap respons, dan permintaan seterusnya kepada hos itu ditolak selagi tetingkap itu terbuka — ralat HOST_BACKOFF, HTTP 429, menamakan hos dan baki saat. Anda tidak dicaj untuknya, dan respect_robots: false tidak sampai kepadanya: parameter itu ialah kenyataan tentang robots.txt, manakala 429 ialah hos menjawab kami secara terus, bukan sesuatu yang boleh dibatalkan oleh pemanggil bagi pihaknya. Kedua-dua bentuk yang dibenarkan spesifikasi diterima, dan tempoh menunggu dihadkan kepada lima minit supaya satu pengepala yang tersilap tidak boleh menyekat sesebuah hos.
Inilah satu-satunya tempat kedua-dua permukaan berkelakuan berbeza, dan sebabnya ialah persekitaran pelaksanaan, bukan dasar. Pelayan MCP menunggu tempoh itu habis dan meneruskan kerja. API REST menolak serta-merta: di dalam fungsi tanpa pelayan dengan siling 30 saat, menunggu selama dua minit akan menghabiskan permintaan itu dan tidak memulangkan apa-apa kepada anda — sudah menunggu, dimatikan, dan halaman itu tetap tidak diambil — jadi ia terus memberikan jawapan hos itu kepada anda.
`Crawl-delay`: lima alat yang mengambil lebih daripada satu halaman — crawl_deep, map_site, generate_llms_txt, batch_scrape dan deep_research — menjarakkan permintaan mereka kepada sesebuah hos mengikut apa yang diminta oleh robots.txt hos itu. Penjarakan adalah bagi setiap hos, jadi tapak yang perlahan tidak pernah menahan tapak lain yang tiada kaitan. Dalam batch_scrape, hos yang mengisytiharkan lengah masa pada dasarnya disirikan manakala setiap hos lain mengekalkan keserentakan penuh — itulah yang diminta oleh arahan tersebut, dan wajar diketahui jika anda menghantar lima puluh URL daripada satu domain yang berlengah. Apabila lengah masa tidak muat dalam bajet masa laluan itu, URL tersebut dilangkau dan bukan ditunggu: keputusannya ditanda skipped dengan sebabnya, satu baris ringkasan muncul dalam notes, dan anda tidak dicaj. Alat yang mengambil sekali sahaja tiada apa-apa untuk dijarakkan.
crawl_deep turut menerima parameter crawl_delaynya sendiri. Itu ialah jeda yang anda minta, satu perkara yang berbeza daripada yang diminta oleh tapak itu; apabila kedua-duanya terpakai, ia diselesaikan menjadi satu tempoh menunggu dan yang lebih panjang menang. Had kadar pelan anda (1–10 permintaan sesaat) ialah siling berasingan di atas kesemuanya — lihat FAQ.
G7 — Penarikan diri dan penyingkiran adalah kekal
Pemilik tapak yang meminta supaya tapaknya tidak diambil akan dimasukkan ke dalam senarai sekatan peringkat platform. Tiada parameter pelanggan mengatasinya.
Sebabnya: senarai sekatan yang boleh dimatikan oleh mana-mana pelanggan bukan senarai sekatan. Jika penarikan diri itu berada dalam pilihan setiap permintaan, mematuhinya bergantung pada pilihan setiap pelanggan — bermakna ia tidak bertahan. Ia mesti berada di bawah lapisan permintaan.
Cara ia dikuatkuasakan: senarai sekatan diperiksa sebelum permintaan dihantar dan terpakai merentas semua alat, semua API key dan semua pelan. Tiada parameter yang mematikannya, dan pengecualian robots.txt tidak sampai kepadanya. Untuk memohon penarikan diri atau memfailkan permintaan penyingkiran, e-mel support@crawlforge.dev dengan domain dan halaman yang berkenaan.
G8 — Tiada pembinaan profil, tiada data peribadi bukan awam
Alat memulangkan apa yang diterbitkan secara awam oleh sumber. Kami tidak membina ciri yang menghimpunkan fakta awam yang bertaburan menjadi profil seseorang individu.
Sebabnya: GDPR dan CCPA terpakai kepada data peribadi tanpa mengira dari mana HTML itu datang, dan "ia memang awam" bukan asas yang sah. Di bawah GDPR, penghimpunan itu sendiri ialah tujuan pemprosesan yang perlu dijustifikasikan: menerbitkan satu fakta tentang diri anda di satu tempat bukan persetujuan untuk dihimpunkan.
Cara ia dikuatkuasakan: tiada alat merujuk silang identiti merentas sumber, dan tiada indeks berpusatkan individu disimpan. Apabila skema pengekstrakan mengumpul data peribadi, itu skema anda dan kawalan anda — simpanan kami ialah log penggunaan, yang merekodkan permintaan dan bukan kandungan yang diekstrak. Menetapkan asas yang sah bagi data peribadi yang anda ekstrak ialah kewajipan anda di bawah Polisi Penggunaan Boleh Terima.
Jelas di luar skop
Perkara ini dinamakan kerana ia kerap diminta. Tiada satu pun daripadanya berada dalam pelan hala tuju.
- Scraping berdaftar masuk ke atas LinkedIn, Indeed, atau mana-mana platform yang termanya melarangnya (G1).
- Scraping penyewa Workday atau sistem pengambilan pekerja lain yang memerlukan log masuk (G1).
- Perkhidmatan penyelesaian CAPTCHA (G2).
- Pemalsuan token cabaran, dan pintasan DataDome, PerimeterX atau Kasada (G2).
robots.txtdiabaikan secara lalai (G5).- Mengelak sekatan yang ditujukan khusus kepada CrawlForge — memutarkan identiti, atau masuk semula dengan User-Agent yang berbeza (G4, G7).
- Membina profil individu (G8).
Permintaan bagi salah satu daripadanya bukan jurang ciri. Ia peraturan yang sedang berfungsi.
Penarikan diri dan penyingkiran
Jika anda mengendalikan sesebuah tapak dan tidak mahu CrawlForge mengambilnya, anda mempunyai dua laluan. Peraturan robots.txt dipatuhi secara lalai pada setiap alat dan berkuat kuasa pada pengambilan berikutnya. Penarikan diri peringkat platform pula bersifat kekal dan tidak boleh diatasi oleh mana-mana pelanggan: e-mel support@crawlforge.dev dengan domain dan halaman yang berkenaan.