حوّل موقعك الإلكتروني
تزحف هذه القدرة إلى موقعك بمتصفح حقيقي يعرض الصفحة كما يراها الزائر، ثم تفهرس محتواها للبحث الدلالي، فتشمل حتى الصفحات المبنية بجافاسكربت التي لا تراها أدوات الاستخراج البسيطة. تناسب من يريد بحثًا ذكيًا فوق موقعه أو مدونته دون نسخ المحتوى يدويًا.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
متصفح حقيقي لا استخراج نص خام
تفتح الأداة كل رابط في متصفح حقيقي ينتظر اكتمال تحميل الصفحة، فتقرأ المحتوى الذي يظهر فعليًا للزائر — حتى لو تولّد بجافاسكربت بعد التحميل — بدل تحليل الشيفرة المصدرية الخام فقط، وهذا ما يجعل الفهرسة دقيقة لمواقع اليوم الحديثة.
من رابط واحد إلى موقع كامل
تُرسِل رابط الصفحة الرئيسية عبر الموقع أو الـAPI، فتتبع الأداة الروابط الداخلية وتفهرس كل صفحة على حدة ضمن الحد المتاح. تصلك حالة كل صفحة برقم مهمة task_id، وتُضاف صفحاتك تباعًا إلى الفهرس مع تقدّم الزحف.
متى تُحدَّث الفهرسة
الفهرسة لقطة من لحظة الزحف نفسها؛ إذا تغيّر محتوى موقعك لاحقًا، تُعاد فهرسة الصفحات المتأثرة فقط بإرسال روابطها من جديد، بدل إعادة زحف الموقع كاملًا في كل مرة.
لماذا السعر مبني على الصفحة
كل صفحة تتطلب تشغيل متصفح كامل وانتظار تحميلها فعليًا، لا مجرد تنزيل ملف نصي؛ لذلك يُحتسَب السعر لكل صفحة مفهرسة، بغضّ النظر عن طول محتواها أو عدد الروابط بداخلها.
حالات الاستخدام
متجر إلكتروني يفهرس صفحات منتجاته
يفهرس متجر إلكتروني في جدة أربعمئة صفحة منتج مبنية بجافاسكربت، ليضيف بحثًا دلاليًا يفهم صياغات الزبون العامية دون إعادة كتابة أوصاف المنتجات.
مدونة تقنية تبني بحثًا داخليًا
تفهرس مدونة تقنية عربية أرشيفها من مئتي مقال، ليجد القارئ المقال المناسب بوصف مشكلته بدل تخمين الكلمة المفتاحية الدقيقة التي كُتب بها العنوان.
جهة حكومية تفهرس بوابتها الإلكترونية
تفهرس جهة حكومية في أبوظبي بوابتها الخدمية الكاملة، فيبحث المواطن عن خدمة بصياغته الخاصة دون معرفة الاسم الرسمي الدقيق للخدمة.
الأسئلة الشائعة
هل تفهرس الصفحات المبنية بجافاسكربت؟
نعم؛ الأداة تفتح كل صفحة في متصفح حقيقي وتنتظر اكتمال تحميلها قبل الفهرسة، فتشمل المحتوى الذي يظهر بعد التحميل.
كم تكلفة فهرسة موقع كامل؟
$0.040 لكل طلب زائد $0.0025 لكل صفحة؛ موقع من خمسين صفحة يكلف نحو $0.165.
هل تفهرس الأداة موقعي بالكامل تلقائيًا من رابط واحد؟
نعم؛ تتبع الروابط الداخلية من الصفحة الأولى وتفهرس كل صفحة تصل إليها ضمن الحد المتاح للطلب.
كيف أحدّث الفهرس بعد تعديل موقعي؟
ترسل روابط الصفحات المتأثرة فقط لإعادة فهرستها، دون الحاجة إلى زحف الموقع كاملًا من جديد.
هل تُحفظ صفحاتي أو تُعرَض لأي جهة أخرى؟
تُستخدم محتويات الصفحة لإنتاج الفهرس فقط، ولا تُنشَر ولا تُشارَك مع أي جهة خارجية.
ما الحد الأقصى لعدد الصفحات في عملية زحف واحدة؟
حتى 10,000 مقطع نصي إجمالي عبر كل الصفحات المفهرسة؛ المواقع الأكبر تُفهرَس على دفعات متتالية.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/search/index-url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/index-url", {
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/search/index-url",
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/search/index-url", 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/search/index-url", 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": "search.index_url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chunks | 10000 |
max_tokens | 20000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
413 | input_too_large | حجم المدخلات يتجاوز الحد المسموح لهذه المهمة — قسّم الملف أو صغّره. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |