عرض لفترة محدودة|خصم 20% على Seedance 2.0 و 2.0 Mini!

كيفية تحويل المواقع الإلكترونية إلى صيغة JSON جاهزة لنماذج LLM باستخدام AnyCrawl

تعرف على كيفية استضافة AnyCrawl ذاتياً باستخدام Docker، وتهيئة Atlas Cloud كمصدر لواجهة برمجة تطبيقات النماذج، واستخراج صفحات الويب بصيغتي Markdown وJSON المهيكل لتطبيقات الذكاء الاصطناعي.

كيفية تحويل المواقع الإلكترونية إلى صيغة JSON جاهزة لنماذج LLM باستخدام AnyCrawl

تساعدك AnyCrawl على تحويل صفحات الويب غير المنظمة إلى تنسيق Markdown أو JSON نظيف لتطبيقات الذكاء الاصطناعي (LLM). يوضح هذا الدليل كيفية ربط AnyCrawl مع Atlas Cloud كمصدر لواجهة برمجة تطبيقات النموذج، وكيفية كشط صفحة مشروع واحدة، واستخراج حقول مهيكلة، ثم توسيع نفس النمط ليشمل عمليات الزحف والبحث.

تتوقف معظم دروس كشط الويب عند خطوة "تنزيل HTML"، ولكن بالنسبة لتطبيقات الذكاء الاصطناعي، فهذه هي المرحلة التي يبدأ فيها العمل الحقيقي. تحتوي الصفحات الخام على رؤوس وتذييلات وقوائم جانبية ولافتات ملفات تعريف الارتباط وروابط مكررة ومحتوى يتم عرضه عبر JavaScript. ما يحتاجه نموذجك فعلياً هو واجهة بيانات مستقرة: نص نظيف عندما تحتاج إلى سياق، وJSON مكتوب (Typed) عندما تحتاج إلى حقول محددة.

هذا هو النموذج الذهني المفيد لـ AnyCrawl؛ فهي أداة زحف وكشط تعمل ببيئة Node.js / TypeScript، مصممة لتحويل المواقع الإلكترونية إلى بيانات جاهزة للنماذج اللغوية الكبيرة (LLM)، مع دعم لكشط الصفحة الواحدة، وزحف المواقع، وجمع نتائج محركات البحث (SERP)، وأعباء العمل متعددة الخيوط/العمليات، واستخراج بيانات JSON مدعوم بالذكاء الاصطناعي.

ما الذي سنقوم ببنائه

سنقوم ببناء "مستخرج بحث عن مشاريع" صغير.

المدخلات:

plaintext
1رابط لصفحة مشروع عام أو وثائق تقنية

المخرجات:

plaintext
1{
2  "project_name": "AnyCrawl",
3  "one_sentence_summary": "...",
4  "core_features": ["..."],
5  "best_for": ["..."],
6  "input_types": ["url", "search query"],
7  "output_formats": ["markdown", "json"],
8  "evidence_urls": ["..."]
9}

يستخدم هذا العرض ثلاثة ميزات من AnyCrawl:

   
الحاجةميزة AnyCrawlلماذا هي مهمة
استخراج صفحة واحدة/v1/scrapeأفضل نقطة بداية لتحويل رابط واحد إلى Markdown أو JSON
استخراج صفحات متعددة/v1/crawlمفيدة لمواقع الوثائق، وصفحات المنتجات، والمدونات، ومراكز المساعدة
العثور على الصفحات أولاً/v1/searchمفيدة عندما تحتاج إلى نتائج محرك بحث قبل كشط الروابط
فرض حقول مستقرةوضع JSONمفيدة عندما يحتاج تطبيقك لمخرجات ذات نوع محدد (Typed)، وليس مجرد نص

تقوم واجهة برمجة تطبيقات الكشط (Scrape API) في AnyCrawl بتحويل الرابط إلى بيانات مهيكلة جاهزة للذكاء الاصطناعي، ويمكنها إرجاع Markdown، وHTML، ونصوص، ولقطات شاشة، وHTML خام، وJSON، وملخصات، وروابط. توضح الوثائق أن عملية الكشط متزامنة (synchronous)، لذا لن تحتاج إلى حلقة استطلاع (polling loop) لصفحة واحدة.

دليل خطوة بخطوة: تشغيل AnyCrawl مع Atlas Cloud واستخراج بيانات الويب إلى JSON

في هذا الدليل، سنقوم باستضافة AnyCrawl محلياً باستخدام Docker، وتعيين Atlas Cloud كمزود لواجهة برمجة تطبيقات النموذج للاستخراج، ثم استدعاء خادم AnyCrawl المحلي لتحويل صفحة ويب إلى JSON مهيكل.

ملاحظة: تم كتابة هذا الدليل لبيئات العمل على macOS وLinux.

الخطوة 1: إنشاء مجلد مشروع نظيف

افتح الطرفية (Terminal) وأنشئ مجلدًا صغيرًا لهذا العرض التوضيحي.

plaintext
1mkdir anycrawl-atlas-demo
2cd anycrawl-atlas-demo

سيحتوي هذا المجلد فقط على ملف البيئة وجسم الطلب الذي سنستخدمه لاختبار واجهة برمجة التطبيقات.

الخطوة 2: الحصول على مفتاح API الخاص بـ Atlas Cloud

انتقل إلى لوحة تحكم Atlas Cloud، وافتح صفحة مفاتيح API، واضغط على Create API Key، ثم انسخ المفتاح واحفظه بشكل آمن. تشير Atlas Cloud إلى أن المفتاح يظهر مرة واحدة فقط، لذا تأكد من حفظه في مكان آمن.

Atlas Cloud

حافظ على سرية المفتاح. لا تقم بلصقه في مستودع GitHub عام، أو مسودة مقال عامة، أو لقطة شاشة.

الخطوة 3: إنشاء ملف .env

أنشئ ملف .env في المجلد الحالي:

plaintext
1cat > .env <<'EOF'
2NODE_ENV=production
3ANYCRAWL_API_PORT=8080
4ANYCRAWL_HEADLESS=true
5ANYCRAWL_API_AUTH_ENABLED=false
6
7ATLASCLOUD_BASE_URL=https://api.atlascloud.ai/v1
8ATLASCLOUD_API_KEY=YOUR_ATLASCLOUD_API_KEY
9DEFAULT_LLM_MODEL=atlascloud/deepseek-v4
10DEFAULT_EXTRACT_MODEL=atlascloud/deepseek-v4
11EOF

استبدل YOUR_ATLASCLOUD_API_KEY بمفتاحك الحقيقي.

هذا هو المكان الصحيح لتكوين مزود النموذج. يجب أن يظل طلب الكشط نفسه مركزاً على الرابط، وتنسيق المخرجات، ومخطط JSON. أما توجيه النموذج فيتبع بيئة خادم AnyCrawl، لأن AnyCrawl هي الخدمة التي تشغل خطوة الاستخراج المدعومة بالذكاء الاصطناعي.

الخطوة 4: تشغيل AnyCrawl باستخدام Docker

ملاحظة: على نظام macOS، تأكد من تثبيت Docker Desktop وتشغيله قبل بدء AnyCrawl. بالنسبة لأجهزة Apple Silicon، استخدم auto أو playwright بدلاً من puppeteer إلا إذا كنت تشغل صورة amd64 بشكل صريح.

شغل حاوية AnyCrawl الشاملة وقم بربط ملف .env بداخلها.

plaintext
1docker run -d \
2  --name anycrawl-atlas-demo \
3  -p 8080:8080 \
4  -v "$(pwd)/.env:/usr/src/app/.env:ro" \
5  ghcr.io/any4ai/anycrawl:latest

تحقق مما إذا كانت الخدمة تعمل:

plaintext
1curl http://localhost:8080/health

تستخدم وثائق Docker المنفذ 8080 للنشر المحلي وتحدد /health كنقطة نهاية للتحقق.

الخطوة 5: اختبار طلب كشط أساسي أولاً

قبل طلب JSON، اختبر ما إذا كان بإمكان AnyCrawl قراءة صفحة وإرجاع Markdown.

plaintext
1curl -X POST "http://localhost:8080/v1/scrape" \
2  -H "Content-Type: application/json" \
3  -d '{
4    "url": "https://github.com/any4ai/AnyCrawl",
5    "engine": "auto",
6    "formats": ["markdown"],
7    "only_main_content": true
8  }'

تقوم واجهة برمجة تطبيقات الكشط في AnyCrawl بتحويل الرابط إلى بيانات مهيكلة جاهزة للذكاء الاصطناعي. وهي تدعم محركات مثل auto وcheerio وplaywright وpuppeteer، وتدعم تنسيقات مخرجات تشمل markdown وhtml وtext وjson وsummary وlinks.

بالنسبة لهذا الطلب الأول، يكفي استخدام markdown. أنت تتحقق مما إذا كان محتوى الصفحة مرئياً قبل مطالبة النموذج باستخراج حقول مهيكلة.

الخطوة 6: إنشاء طلب استخراج JSON

الآن أنشئ جسم الطلب الذي يطلب من AnyCrawl استخراج ملف تعريف مشروع مهيكل.

plaintext
1cat > scrape-project.json <<'EOF'
2{
3  "url": "https://github.com/any4ai/AnyCrawl",
4  "engine": "auto",
5  "formats": ["markdown", "json"],
6  "only_main_content": true,
7  "extract_source": "markdown",
8  "json_options": {
9    "schema_name": "open_source_project_profile",
10    "schema_description": "A structured profile of an open-source project based only on the visible page content.",
11    "schema": {
12      "type": "object",
13      "properties": {
14        "project_name": {
15          "type": "string"
16        },
17        "one_sentence_summary": {
18          "type": "string"
19        },
20        "core_features": {
21          "type": "array",
22          "items": {
23            "type": "string"
24          }
25        },
26        "best_for": {
27          "type": "array",
28          "items": {
29            "type": "string"
30          }
31        },
32        "supported_tasks": {
33          "type": "array",
34          "items": {
35            "type": "string"
36          }
37        },
38        "developer_setup_notes": {
39          "type": "array",
40          "items": {
41            "type": "string"
42          }
43        }
44      },
45      "required": [
46        "project_name",
47        "one_sentence_summary",
48        "core_features"
49      ]
50    },
51    "user_prompt": "Extract only facts that are visible on the page. Do not guess. Summarize the project for a developer who wants to use web data in an AI application."
52  }
53}
54EOF

هناك خطأ شائع هنا: عند استخدام json_options، يجب عليك تضمين "json" في formats؛ وإلا لن تحتوي الاستجابة على بيانات JSON المستخرجة. يدعم وضع JSON في AnyCrawl الاستخراج بناءً على المطالبة فقط، أو المخطط فقط، أو كليهما معاً. في هذا الدليل نستخدم كليهما للحصول على تحكم أفضل في الحقول وتوجيه عملية الاستخراج.

الخطوة 7: تشغيل استخراج JSON

أرسل الطلب إلى خادم AnyCrawl المحلي:

plaintext
1curl -X POST "http://localhost:8080/v1/scrape" \
2  -H "Content-Type: application/json" \
3  -d @scrape-project.json

إذا تم تكوين كل شيء بشكل صحيح، يجب أن تتضمن الاستجابة نتيجة كشط ناجحة ونتيجة استخراج JSON تتبع المخطط الذي حددته.

عند هذه النقطة، تكون العملية قد اكتملت:

plaintext
1صفحة مشروع GitHub
2→ واجهة برمجة تطبيقات الكشط المحلية AnyCrawl
3→ استخراج Markdown
4→ استخراج JSON مدعوم بالذكاء الاصطناعي
5→ ملف تعريف مشروع مهيكل

الجزء المهم هو أن الطلب لا يستدعي مزود النموذج مباشرة. تتعامل AnyCrawl مع سير عمل الكشط والاستخراج، بينما يتم تكوين مصدر واجهة برمجة تطبيقات النموذج على مستوى الخادم.

الخطوة 8: تجربة صفحة تعتمد على JavaScript بكثافة إذا ظهر الـ Markdown فارغاً

إذا كانت نتيجة Markdown قصيرة جداً، أو فارغة، أو تفتقد محتوى الصفحة المرئي، قم بتغيير المحرك إلى playwright.

plaintext
1{
2  "url": "https://example.com",
3  "engine": "playwright",
4  "formats": ["markdown", "json"],
5  "only_main_content": true,
6  "json_options": {
7    "user_prompt": "Extract the main topic, key facts, and important links from this page."
8  }
9}

تصف وثائق AnyCrawl محرك cheerio بأنه سريع لصفحات HTML الثابتة، وplaywright بأنه أفضل للصفحات المعتمدة على JavaScript، وauto كخيار للأغراض العامة يمكنه اختيار المحرك تلقائياً.

الخطوة 9: إيقاف وتنظيف حاوية العرض

عند الانتهاء من الاختبار، أوقف الحاوية:

plaintext
1docker stop anycrawl-atlas-demo
2docker rm anycrawl-atlas-demo

يمكنك إعادة تشغيل نفس سير العمل لاحقاً عن طريق تنفيذ أمر Docker مرة أخرى من المجلد الذي يحتوي على ملف .env.

ما الذي أنجزته للتو

أصبح لديك الآن خدمة AnyCrawl محلية يمكنها كشط صفحة ويب عامة، وتنظيفها إلى Markdown، واستخراج JSON محدد النوع من خلال سير عمل مدعوم بالنماذج اللغوية الكبيرة. يحافظ هذا الإعداد على ترتيب أداة الزحف، ونموذج الاستخراج، ومخرجات التطبيق بشكل صحيح: صفحة الويب أولاً، المحتوى المهيكل ثانياً، وتكامل التطبيق أخيراً.

الأسئلة الشائعة

في ماذا تُستخدم AnyCrawl؟

تُستخدم AnyCrawl لتحويل صفحات الويب والمواقع ونتائج البحث إلى بيانات جاهزة للنماذج اللغوية الكبيرة مثل Markdown وJSON مهيكل. وهي تدعم كشط الصفحة الواحدة، والزحف الكامل للموقع، وجمع نتائج البحث، والاستخراج المعتمد على الذكاء الاصطناعي، مما يجعلها مفيدة لتطبيقات RAG، ووكلاء الذكاء الاصطناعي، وأدوات البحث، وخطوط أنابيب البيانات الداخلية.

كيف أستخرج JSON من صفحة ويب باستخدام AnyCrawl؟

استخدم /v1/scrape وقم بتضمين "json" في formats ومرر json_options مع مطالبة (prompt) أو مخطط (schema) أو كليهما. توضح وثائق وضع JSON في AnyCrawl أنه إذا استخدمت json_options ونسيت تضمين "json" في formats، فلن تحتوي الاستجابة على بيانات JSON المستخرجة.

كيف أستخدم Atlas Cloud مع AnyCrawl؟

استخدم Atlas Cloud كمزود للنماذج اللغوية الكبيرة المتوافق مع OpenAI في بيئة خادم AnyCrawl، وليس داخل كل طلب كشط. تصف وثائق Atlas Cloud نقطة نهاية LLM الخاصة بها بأنها متوافقة مع OpenAI مع عنوان أساسي https://api.atlascloud.ai/v1، بينما يستخدم إعداد المزود في AnyCrawl متغيرات البيئة مثل ATLASCLOUD_BASE_URL وATLASCLOUD_API_KEY وإعدادات نموذج الاستخراج الافتراضي.

هل يمكن لـ AnyCrawl زحف موقع إلكتروني بالكامل؟

نعم، يمكن لـ AnyCrawl زحف موقع إلكتروني عبر /v1/crawl الذي ينشئ وظيفة زحف غير متزامنة. تتيح لك واجهة برمجة تطبيقات الزحف التحكم في النطاق بخيارات مثل max_depth وlimit وinclude_paths وexclude_paths، ثم استطلاع وظيفة الزحف وجلب النتائج المرقمة.

هل يمكن لـ AnyCrawl كشط نتائج بحث Google؟

نعم، تتضمن AnyCrawl واجهة برمجة تطبيقات للبحث (Search API) لجمع نتائج البحث المهيكلة قبل كشط روابط محددة. تدعم هذه الواجهة معايير مثل query وpages وlimit وlang وcountry وtimeRange، مما يجعلها مفيدة عندما يبدأ سير عمل الذكاء الاصطناعي الخاص بك باستعلام بحث بدلاً من رابط معروف.

هل AnyCrawl أفضل من Firecrawl أو Crawl4AI؟

ليس بشكل مطلق؛ يعتمد الأمر على احتياجات النشر وسير العمل لديك. تعد AnyCrawl مناسبة لهذا الدليل لأننا نريد خدمة Docker محلية، وتكوين المزود على مستوى الخادم، وسير عمل بسيط للكشط إلى JSON، بينما تتمتع Firecrawl وCrawl4AI بنقاط قوة في الاستخراج المُدار والزحف القابل للبرمجة على التوالي.

هل يجب أن أستخدم Cheerio أو Playwright أو Puppeteer في AnyCrawl؟

ابدأ بـ auto أو cheerio، ثم انتقل إلى playwright عندما تحتاج الصفحة إلى عرض JavaScript. تضع وثائق الكشط في AnyCrawl محرك Cheerio كخيار خفيف لصفحات HTML الثابتة وPlaywright/Puppeteer كمحركات قائمة على المتصفح للصفحات الأكثر تعقيداً، لذا فإن سير العمل العملي هو فحص Markdown أولاً واستخدام محرك أثقل فقط عند الضرورة.

لماذا مخرجات JSON الخاصة بي مفقودة في AnyCrawl؟

السبب الأكثر شيوعاً هو عدم تضمين "json" في formats. سبب شائع آخر هو أن المحرك المختار لم يلتقط محتوى الصفحة بشكل صحيح، خاصة في المواقع التي تعتمد على JavaScript؛ في هذه الحالة، أعد المحاولة مع auto أو playwright وتحقق من Markdown قبل تصحيح المخطط.

هل يمكنني استخدام AnyCrawl لخطوط أنابيب بيانات RAG؟

نعم، تعد AnyCrawl مناسبة عملياً لإعداد بيانات RAG لأنها تستطيع تحويل صفحات الويب إلى Markdown وJSON موجه بالمخطط قبل دخول المحتوى إلى قاعدة بيانات المتجهات (vector database) أو نظام المعرفة الخاص بك. نمط الإنتاج الجيد هو الكشط أولاً، والتحقق من الحقول المستخرجة، وتخزين الرابط المصدر، والاحتفاظ بما يكفي من Markdown لتصحيح الأخطاء.

ما هو أسهل سير عمل لـ AnyCrawl للمبتدئين؟

سير العمل الأسهل هو: كشط رابط واحد، طلب Markdown، التأكد من أن المحتوى يبدو صحيحاً، إضافة وضع JSON، التحقق من المخرجات، وفقط بعد ذلك الانتقال إلى الزحف أو البحث. هذا يتجنب خلط مشاكل الوصول إلى الصفحة، ومشاكل العرض، ومشاكل مخطط الاستخراج في طلب واحد يصعب تصحيحه.

الخاتمة

تعد AnyCrawl مفيدة لأنها تتعامل مع صفحات الويب كمدخلات لأنظمة الذكاء الاصطناعي، وليس مجرد وثائق HTML للتنزيل. ابدأ بصفحة واحدة، وافحص الـ Markdown، وأضف مخططاً، وتحقق من JSON، وفقط بعد ذلك توسع في الزحف أو البحث.

هذا الترتيب يحافظ على سير العمل بسيطاً، كما يبقي نقاط الفشل مرئية، وهو ما تريده عندما تصبح بيانات الويب جزءاً من تطبيق ذكاء اصطناعي.

أحدث النماذج

واجهة برمجية واحدة لكل وسائط الذكاء الاصطناعي.

استكشف جميع النماذج

Join our Discord community

Join the Discord community for the latest model updates, prompts, and support.

دليل AnyCrawl: تحويل المواقع الإلكترونية إلى ملفات JSON جاهزة لنماذج LLM