زحف موقع كامل واستخراج محتوى حتى 25 صفحة
أداة الزحف تبدأ من رابط رئيسي وتتبع الروابط الداخلية للموقع تلقائيًا، فتستخرج محتوى حتى 25 صفحة في طلب واحد. تناسب من يحتاج نظرة شاملة على موقع كامل لا صفحة واحدة معزولة عن سياقها، دون فتح كل رابط بنفسه ونسخ محتواه واحدًا تلو الآخر.
كيف يعمل الزحف
تبدأ الأداة من رابط رئيسي واحد وتتبع الروابط الداخلية التي تجدها في الصفحة، فتنتقل من صفحة لأخرى ضمن نفس الموقع حتى تصل حد 25 صفحة أو تنفد الروابط الداخلية الجديدة. لا حاجة لسرد كل رابط يدويًا؛ يكفي رابط البداية وتتولى الأداة اكتشاف بقية الصفحات المترابطة بنفسها دون أي إعداد إضافي منك أو سرد لكل عنوان تريده مسبقًا واحدًا واحدًا. هذا يوفر وقتًا كبيرًا خصوصًا في موقع كثير الصفحات المترابطة.
ما الذي تستخرجه من كل صفحة
من كل صفحة زُحف إليها، تستخرج الأداة العنوان والمحتوى النصي الأساسي وقائمة الروابط الداخلية التي وجدتها فيها، منظمة في نتيجة واحدة تجمع كل الصفحات معًا. هذا يعطي صورة شاملة عن بنية الموقع ومحتواه دون الحاجة لطلب كل صفحة على حدة بأداة مختلفة أو معالجة كل نتيجة يدويًا فيما بعد لتجميعها في ملف واحد منظم قابل للمراجعة أو الاستيراد المباشر. هذا التنظيم يوفر خطوة دمج كاملة كانت ستُنجز يدويًا بعد كل صفحة.
متى تختار الزحف لا صفحة واحدة
حين يكون المطلوب فهم موقع كامل — كل مقالات مدونة، أو كل صفحات قسم منتجات — لا صفحة واحدة معزولة، الزحف يوفر وقتًا كبيرًا مقارنة بطلب كل رابط بأداة استخراج منفصلة. حد 25 صفحة يناسب مواقع صغيرة ومتوسطة أو قسمًا محددًا من موقع أكبر، ويمكن تكرار الزحف ببداية مختلفة لتغطية أقسام إضافية لاحقًا دون إعادة تصميم الطلب من الصفر في كل مرة.
السعر
نحو $0.040 للطلب الأساسي زائد $0.001 لكل صفحة تُزحف إليها فعليًا، أي أن زحف 25 صفحة كاملة يكلّف نحو $0.065 فقط. تعمل الأداة من هذه الصفحة أو عبر الـAPI لدمج نتيجة الزحف في نظام أرشفة أو تحليل آخر يعتمد على محتوى موقع كامل بسعر معلوم مسبقًا لا يتغير بمفاجآت لاحقة في الفاتورة النهائية للمهمة مهما بلغ عدد الصفحات المزحوفة.
حالات الاستخدام
أرشفة مدونة كاملة قبل ترحيل موقع
قبل ترحيل موقعها إلى منصة جديدة، تزحف مؤسسة النخيل للمقاولات كل مقالات مدونتها لأخذ نسخة نصية كاملة تحسبًا لأي مشكلة أثناء النقل.
فهم بنية موقع منافس دفعة واحدة
يزحف فريق تسويق موقع منافس من صفحته الرئيسية، ليحصل على نظرة شاملة على أقسام موقعه وعناوين محتواه في طلب واحد بدل تصفح كل صفحة يدويًا.
جمع محتوى قسم دعم فني للتحليل
يزحف فريق دعم فني كل صفحات قسم الأسئلة الشائعة في موقعه، ليحلل تغطية المواضيع ويكتشف فجوات لم تُجب عنها أي صفحة حالية.
الأسئلة الشائعة
ما أقصى عدد صفحات يمكن زحفها في طلب واحد؟
25 صفحة كحد أقصى لكل طلب؛ لموقع أكبر يمكن تقسيم الزحف على عدة طلبات ببدايات مختلفة.
كيف تختار الأداة الصفحات التي تزحف إليها؟
تتبع الروابط الداخلية التي تجدها في كل صفحة بدءًا من رابط البداية، ولا تخرج عن نطاق نفس الموقع.
هل تُحفظ الصفحات بعد الزحف؟
لا، تُستخدم لإنتاج النتيجة فقط ثم تُحذف دون الاحتفاظ بأي نسخة من محتواها.
كم تكلفة زحف 25 صفحة كاملة؟
نحو $0.065، بواقع $0.040 للطلب الأساسي زائد $0.001 لكل صفحة إضافية.
هل يزحف إلى صفحات خارج الموقع الأصلي؟
لا، يقتصر الزحف على الروابط الداخلية ضمن نفس النطاق الذي بدأ منه الطلب.
هل أحتاج حسابًا للاستخدام؟
لا يوجد تسجيل دخول ولا حساب؛ الدفع مباشر عند كل طلب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/web/crawl \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/web/crawl", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/crawl",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/crawl", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/crawl", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"input": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.crawl",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
timeout_sec | 30 |
max_crawl_pages | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
413 | input_too_large | حجم المدخلات يتجاوز الحد المسموح لهذه المهمة — قسّم الملف أو صغّره. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |