Home
Login

أداة مفتوحة المصدر عالية الأداء لزحف الويب واستخراج البيانات مُحسَّنة خصيصًا لنماذج اللغة الكبيرة (LLM) ووكلاء الذكاء الاصطناعي

Apache-2.0Python 46.0kunclecode Last Updated: 2025-06-18

Crawl4AI - زاحف ويب ذكي مفتوح المصدر مُحسَّن خصيصًا لنماذج اللغة الكبيرة (LLM)

نظرة عامة على المشروع

Crawl4AI هو زاحف ويب عالي السرعة وجاهز للذكاء الاصطناعي، مُصمم خصيصًا لنماذج اللغة الكبيرة (LLM) ووكلاء الذكاء الاصطناعي وخطوط أنابيب البيانات. المشروع مفتوح المصدر بالكامل ومرن ومبني للأداء في الوقت الفعلي، مما يوفر للمطورين سرعة ودقة وسهولة نشر لا مثيل لها.

الميزات الأساسية

🤖 مُصمم لنماذج اللغة الكبيرة (LLM)

  • إنشاء Markdown ذكي ونظيف مُحسَّن لتطبيقات RAG والضبط الدقيق
  • توفير محتوى منظم ونظيف، مناسب لمعالجة نماذج الذكاء الاصطناعي
  • دعم جميع نماذج اللغة الكبيرة (مفتوحة المصدر وخاصة) لاستخراج البيانات المنظمة

⚡ سرعة فائقة

  • توفير نتائج أسرع 6 مرات، مع أداء فعال من حيث التكلفة وفي الوقت الفعلي
  • يعتمد على بنية غير متزامنة، ويدعم المعالجة المتزامنة على نطاق واسع
  • جدولة تكيفية للذاكرة، يمكنها ضبط التزامن ديناميكيًا وفقًا لذاكرة النظام

🌐 تحكم مرن في المتصفح

  • إدارة الجلسات ودعم الوكيل وخطافات مخصصة
  • دعم متصفح المستخدم الخاص، وتحكم كامل، وتجنب اكتشاف الروبوتات
  • إدارة ملفات تعريف المتصفح، وحفظ حالة المصادقة وملفات تعريف الارتباط والإعدادات
  • دعم متصفحات متعددة Chromium و Firefox و WebKit

🧠 ذكاء استرشادي

  • استخدام خوارزميات متقدمة للاستخراج الفعال، وتقليل الاعتماد على النماذج باهظة الثمن
  • تصفية خوارزمية BM25، واستخراج المعلومات الأساسية وإزالة المحتوى غير ذي الصلة
  • تنظيف ذكي للمحتوى ومعالجة تقليل الضوضاء

وحدات الوظائف الرئيسية

📝 إنشاء Markdown

  • Markdown نظيف: إنشاء Markdown منظم بتنسيق دقيق
  • Markdown مُكيَّف: استنادًا إلى التصفية الاسترشادية، قم بإزالة الضوضاء والأجزاء غير ذات الصلة
  • الاقتباسات والمراجع: تحويل روابط الصفحة إلى قائمة مراجع مرقمة مع اقتباسات نظيفة
  • استراتيجيات مخصصة: يمكن للمستخدمين إنشاء استراتيجيات إنشاء Markdown لتلبية احتياجات محددة

📊 استخراج البيانات المنظمة

  • الاستخراج المدفوع بنماذج اللغة الكبيرة (LLM): دعم جميع نماذج اللغة الكبيرة (LLM) لاستخراج البيانات المنظمة
  • استراتيجيات التقسيم: تحقيق التقسيم (استنادًا إلى الموضوع والتعبيرات النمطية ومستوى الجملة) لمعالجة المحتوى المستهدف
  • تشابه جيب التمام: استنادًا إلى استعلام المستخدم، ابحث عن كتل المحتوى ذات الصلة للاستخراج الدلالي
  • استخراج محدد CSS: استخدم XPath ومحددات CSS للاستخراج السريع للأنماط
  • تعريف النمط: تحديد أنماط مخصصة لاستخراج JSON منظم من الأنماط المتكررة

🔎 وظائف الزحف والالتقاط

  • دعم الوسائط: استخراج الصور والصوت والفيديو وتنسيقات الصور المستجيبة
  • الزحف الديناميكي: تنفيذ JavaScript وانتظر الاستخراج غير المتزامن/المتزامن للمحتوى الديناميكي
  • وظيفة لقطة الشاشة: التقاط لقطات شاشة للصفحة أثناء عملية الزحف لتصحيح الأخطاء أو التحليل
  • زحف البيانات الأولية: معالجة HTML الخام أو الملفات المحلية مباشرة
  • استخراج شامل للروابط: استخراج الروابط الداخلية والخارجية ومحتوى iframe المضمن
  • خطافات قابلة للتخصيص: تحديد خطافات في كل خطوة لتخصيص سلوك الزحف
  • آلية التخزين المؤقت: تخزين البيانات مؤقتًا لتحسين السرعة وتجنب الاسترداد المتكرر
  • معالجة التحميل الكسول: انتظر حتى يتم تحميل الصور بالكامل، وتأكد من عدم فقدان المحتوى بسبب التحميل الكسول

🚀 النشر والتكامل

  • إعداد Dockerized: صورة Docker مُحسَّنة، مع خادم FastAPI، لسهولة النشر
  • مصادقة آمنة: مصادقة رمز JWT المميزة المضمنة، مما يضمن أمان API
  • بوابة API: نشر بنقرة واحدة، مع سير عمل API مع مصادقة رمز مميز آمن
  • بنية قابلة للتطوير: مُصمَّمة للإنتاج على نطاق واسع، وتحسين أداء الخادم
  • النشر السحابي: توفير تكوينات نشر جاهزة للاستخدام لمنصات السحابة الرئيسية

طريقة التثبيت

تثبيت حزمة Python


pip install -U crawl4ai


crawl4ai-setup


crawl4ai-doctor

نشر Docker


docker pull unclecode/crawl4ai:0.6.0-rN
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN

# webUI:http://localhost:11235/playground

مثال على الاستخدام الأساسي

زحف بسيط لصفحة ويب

import asyncio
from crawl4ai import *

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://www.nbcnews.com/business",
        )
        print(result.markdown)

if __name__ == "__main__":
    asyncio.run(main())

واجهة سطر الأوامر


crwl https://www.nbcnews.com/business -o markdown


crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10


crwl https://www.example.com/products -q "Extract all product prices"

استخراج البيانات المنظمة بنماذج اللغة الكبيرة (LLM)

import os
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode, LLMConfig
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from pydantic import BaseModel, Field

class OpenAIModelFee(BaseModel):
    model_name: str = Field(..., description="Name of the OpenAI model.")
    input_fee: str = Field(..., description="Fee for input token for the OpenAI model.")
    output_fee: str = Field(..., description="Fee for output token for the OpenAI model.")

async def main():
    browser_config = BrowserConfig(verbose=True)
    run_config = CrawlerRunConfig(
        word_count_threshold=1,
        extraction_strategy=LLMExtractionStrategy(
            llm_config = LLMConfig(provider="openai/gpt-4o", api_token=os.getenv('OPENAI_API_KEY')),
            schema=OpenAIModelFee.schema(),
                      extraction_type="schema",
            instruction="""From the crawled content, extract all mentioned model names along with their fees for input and output tokens. 
            Do not miss any models in the entire content. One extracted model JSON format should look like this: 
            {"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}."""
        ),            
        cache_mode=CacheMode.BYPASS,
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result = await crawler.arun(
            url='https://openai.com/api/pricing/',
            config=run_config
        )
        print(result.extracted_content)

if __name__ == "__main__":
    asyncio.run(main())

أحدث ميزات الإصدار (v0.6.0)

🌍 الزحف الواعي بالعالم

قم بتعيين الموقع الجغرافي واللغة والمنطقة الزمنية للحصول على محتوى حقيقي خاص بالمنطقة:

run_config = CrawlerRunConfig(
    url="https://browserleaks.com/geo",
    locale="en-US",
    timezone_id="America/Los_Angeles",
    geolocation=GeolocationConfig(
        latitude=34.0522,
        longitude=-118.2437,
        accuracy=10.0,
    )
)

📊 استخراج الجدول إلى DataFrame

استخرج جداول HTML مباشرةً إلى CSV أو pandas DataFrame:


results = await crawler.arun(
    url="https://coinmarketcap.com/?page=1",
    config=crawl_config
)


raw_df = pd.DataFrame()
for result in results:
    if result.success and result.media["tables"]:
        raw_df = pd.DataFrame(
            result.media["tables"][0]["rows"],
            columns=result.media["tables"][0]["headers"],
        )
        break

🚀 تجميع المتصفحات

استخدم مثيلات متصفح مُسخَّنة مسبقًا عند بدء تشغيل الصفحة، مما يقلل من زمن الوصول واستخدام الذاكرة

🔌 تكامل MCP

اتصل بأدوات الذكاء الاصطناعي عبر بروتوكول سياق النموذج، مثل Claude Code:


claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse

البنية التقنية

المكونات الأساسية

  • محرك الزحف غير المتزامن: بنية غير متزامنة عالية الأداء تعتمد على Playwright
  • استراتيجيات تصفية المحتوى: خوارزميات تصفية متعددة، بما في ذلك عوامل تصفية التشذيب وعوامل تصفية BM25
  • استراتيجيات الاستخراج: دعم محددات CSS ونماذج اللغة الكبيرة (LLM) واستراتيجيات الاستخراج المخصصة
  • مولد Markdown: تحويل ذكي للمحتوى إلى تنسيق Markdown صديق للذكاء الاصطناعي
  • إدارة المتصفح: إدارة كاملة لدورة حياة المتصفح والتحكم في الجلسة

طرق الاستخراج المدعومة

  1. استخراج محدد CSS: استخراج سريع ودقيق للبيانات المنظمة
  2. استخراج نماذج اللغة الكبيرة (LLM): استخدام نماذج لغوية كبيرة لفهم المحتوى الذكي
  3. تنفيذ JavaScript: معالجة المحتوى الديناميكي والتفاعل
  4. التعبيرات النمطية: مطابقة الأنماط ومعالجة النصوص
  5. محددات XPath: تحديد متقدم لعناصر DOM

مزايا الأداء

  • زيادة السرعة بمقدار 6 مرات: مقارنة بأدوات الزحف التقليدية
  • تحسين الذاكرة: إدارة ذكية للذاكرة وجمع البيانات المهملة
  • المعالجة المتزامنة: دعم الزحف المتزامن لآلاف عناوين URL
  • آلية التخزين المؤقت: التخزين المؤقت الذكي يقلل من الطلبات المتكررة
  • إدارة الموارد: تخصيص الموارد التكيفي والقيود

سيناريوهات التطبيق

علم البيانات والبحث

  • جمع الأوراق الأكاديمية وبيانات البحث
  • أبحاث السوق وتحليل المنافسين
  • استخراج بيانات وسائل التواصل الاجتماعي

الذكاء الاصطناعي والتعلم الآلي

  • جمع بيانات التدريب ومعالجتها المسبقة
  • الحصول على محتوى نظام RAG
  • بناء الرسوم البيانية المعرفية

ذكاء الأعمال

  • مراقبة الأسعار ومقارنتها
  • مراقبة الأخبار والرأي العام
  • تجميع بيانات المؤسسة

إدارة المحتوى

  • ترحيل مواقع الويب ونسخها الاحتياطي
  • تجميع المحتوى وتوزيعه
  • تحليل SEO وتحسينه

خارطة طريق التطوير

  • الزحف البياني: استخدام خوارزميات البحث البياني لاجتياز مواقع الويب الذكية
  • الزحف المدفوع بالمشكلات: اكتشاف صفحات الويب واستخراج المحتوى المدفوع باللغة الطبيعية
  • الزحف الأمثل للمعرفة: زيادة الحصول على المعرفة مع تقليل استخراج البيانات
  • الزحف بالوكالة: نظام مستقل لعمليات الزحف المعقدة متعددة الخطوات
  • مولد الأنماط الآلي: تحويل اللغة الطبيعية إلى أنماط استخراج
  • الزحف الخاص بالمجال: مستخرجات مُكوَّنة مسبقًا للمنصات الشائعة

المجتمع والدعم

يتمتع Crawl4AI بدعم مجتمع مفتوح المصدر نشط، ونرحب بالمساهمة في التعليمات البرمجية والإبلاغ عن المشكلات وتقديم الاقتراحات. يتبع المشروع ترخيص Apache 2.0، وهو مفتوح المصدر بالكامل ومجاني للاستخدام.

ملخص

يمثل Crawl4AI أحدث التطورات في تكنولوجيا زحف الويب، خاصة في سياق عصر الذكاء الاصطناعي. لا يوفر فقط جميع وظائف الزحف التقليدية، ولكنه مُحسَّن أيضًا خصيصًا لتطبيقات الذكاء الاصطناعي الحديثة، مما يجعله خيارًا مثاليًا لعلماء البيانات وباحثي الذكاء الاصطناعي والمطورين. من خلال ميزاته مفتوحة المصدر ومجتمعه النشط، يعمل Crawl4AI على تعزيز إضفاء الطابع الديمقراطي على تكنولوجيا استخراج بيانات الويب وتوحيدها.