نظرة عامة على مشروع Firecrawl
Firecrawl هي خدمة API تستقبل عنوان URL، وتقوم بفهرسته، وتحويله إلى markdown نظيف أو بيانات منظمة. تقوم بفهرسة جميع الصفحات الفرعية التي يمكن الوصول إليها، وتوفر بيانات نظيفة لكل صفحة. لا حاجة إلى خريطة موقع.
الوظائف الأساسية
1. كشط الويب (Scraping)
- كشط عنوان URL واحد والحصول على محتوى بتنسيق جاهز لـ LLM
- يدعم تنسيقات إخراج متعددة: markdown، بيانات منظمة، لقطات شاشة، HTML
- الحصول على بيانات منظمة من خلال استخراج LLM
2. زحف الموقع (Crawling)
- زحف جميع عناوين URL الخاصة بالصفحة وإرجاع محتوى بتنسيق جاهز لـ LLM
- اكتشاف جميع الصفحات الفرعية التي يمكن الوصول إليها دون الحاجة إلى خريطة موقع
- يدعم عمق الزحف المخصص وقواعد الاستبعاد
3. خريطة الموقع (Map)
- إدخال موقع ويب للحصول على جميع عناوين URL الخاصة بالموقع - سرعة فائقة
- يدعم البحث عن أنماط URL محددة
4. البحث في الويب (Search)
- البحث في الويب والحصول على المحتوى الكامل من النتائج
- معلمات بحث قابلة للتخصيص (اللغة، البلد، إلخ)
- خيار استرداد تنسيقات مختلفة من نتائج البحث
5. استخراج البيانات (Extract)
- استخدام الذكاء الاصطناعي للحصول على بيانات منظمة من صفحة واحدة أو صفحات متعددة أو موقع ويب بأكمله
- يدعم تحديد قواعد الاستخراج من خلال مطالبات ونظام JSON
- يدعم أنماط URL ذات أحرف البدل
6. المعالجة المجمعة (Batching)
- نقطة نهاية غير متزامنة جديدة لكشط آلاف عناوين URL في وقت واحد
- إرسال مهام كشط مجمعة وإرجاع معرف المهمة للتحقق من الحالة
الخصائص التقنية
تنسيق جاهز لـ LLM
- Markdown: تنسيق مستند نظيف
- بيانات منظمة: بيانات مستخرجة بتنسيق JSON
- لقطات شاشة: التقاط مرئي للصفحة
- HTML: محتوى HTML الأصلي
- الروابط والبيانات الوصفية: استخراج معلومات الصفحة
معالجة الحالات المعقدة
- الوكلاء وآليات مكافحة الروبوتات: تجاوز قيود الوصول
- المحتوى الديناميكي: معالجة المحتوى المعروض بواسطة JavaScript
- تحليل الإخراج: تحليل المحتوى الذكي
- التنسيق: إدارة العمليات المعقدة
قدرات التخصيص
- استبعاد العلامات: تصفية المحتوى غير المرغوب فيه
- الزحف المصادق عليه: استخدام رؤوس مخصصة للزحف إلى المحتوى الذي يتطلب مصادقة
- أقصى عمق للزحف: التحكم في نطاق الزحف
- تحليل الوسائط: يدعم PDF و DOCX والصور
وظائف تفاعلية (Actions)
يمكن تنفيذ إجراءات مختلفة قبل كشط المحتوى:
- النقر: النقر على عناصر الصفحة
- التمرير: عمليات تمرير الصفحة
- الإدخال: إدخال النص
- الانتظار: انتظار تحميل الصفحة
- الضغط على المفاتيح: عمليات لوحة المفاتيح
أمثلة على استخدام API
زحف موقع ويب
curl -X POST https://api.firecrawl.dev/v1/crawl \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"limit": 10,
"scrapeOptions": {
"formats": ["markdown", "html"]
}
}'
كشط صفحة واحدة
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"formats" : ["markdown", "html"]
}'
استخراج البيانات المنظمة
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://www.mendable.ai/",
"formats": ["json"],
"jsonOptions": {
"schema": {
"type": "object",
"properties": {
"company_mission": {"type": "string"},
"supports_sso": {"type": "boolean"},
"is_open_source": {"type": "boolean"},
"is_in_yc": {"type": "boolean"}
},
"required": ["company_mission", "supports_sso", "is_open_source", "is_in_yc"]
}
}
}'
دعم SDK
Python SDK
pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from firecrawl.firecrawl import ScrapeOptions
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
scrape_status = app.scrape_url(
'https://firecrawl.dev',
formats=["markdown", "html"]
)
print(scrape_status)
crawl_status = app.crawl_url(
'https://firecrawl.dev',
limit=100,
scrape_options=ScrapeOptions(formats=["markdown", "html"]),
poll_interval=30
)
print(crawl_status)
Node.js SDK
npm install @mendable/firecrawl-js
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';
const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
formats: ['markdown', 'html'],
});
if (scrapeResponse) {
console.log(scrapeResponse)
}
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
} satisfies CrawlParams, true, 30) satisfies CrawlStatusResponse;
دعم التكامل
تكامل إطار عمل LLM
- Langchain: إصدارات Python و JavaScript
- Llama Index: موصل البيانات
- Crew.ai: إطار عمل وكيل الذكاء الاصطناعي
- Composio: تكامل الأدوات
- PraisonAI: تنسيق الذكاء الاصطناعي
- Superinterface: وظائف المساعد
- Vectorize: تكامل المتجهات
إطار عمل منخفض التعليمات البرمجية
- Dify: منصة بناء تطبيقات الذكاء الاصطناعي
- Langflow: تدفق الذكاء الاصطناعي المرئي
- Flowise AI: بناء الذكاء الاصطناعي بدون تعليمات برمجية
- Cargo: تكامل البيانات
- Pipedream: أتمتة سير العمل
تكاملات أخرى
- Zapier: سير عمل تلقائي
- Pabbly Connect: تكامل التطبيقات
الترخيص والنشر
ترخيص مفتوح المصدر
- يعتمد بشكل أساسي على رخصة جنو العمومية الأفيرو الإصدار 3.0 (AGPL-3.0)
- تعتمد SDK وبعض مكونات واجهة المستخدم على ترخيص MIT
خدمة مُدارة
- يتم توفير إصدار مُدار على firecrawl.dev
- توفر الحلول السحابية وظائف إضافية ودعمًا على مستوى المؤسسات
الاستضافة الذاتية
- يدعم النشر المحلي
- قيد التطوير حاليًا، ويدمج الوحدات النمطية المخصصة في مستودع متراص
- يمكن تشغيله محليًا، ولكنه لم يكن جاهزًا تمامًا للنشر المستضاف ذاتيًا
حالات الاستخدام
- إعداد بيانات الذكاء الاصطناعي: توفير بيانات تدريب نظيفة لـ LLM
- تجميع المحتوى: جمع وتنظيم المحتوى من مواقع ويب متعددة
- تحليل المنافسة: مراقبة التغييرات في مواقع الويب الخاصة بالمنافسين
- بحث تحسين محركات البحث (SEO): تحليل هيكل ومحتوى موقع الويب
- تنقيب البيانات: استخراج معلومات منظمة من مواقع الويب
- إنشاء المستندات: تحويل محتوى موقع الويب إلى تنسيق مستند
احتياطات الاستخدام
يتحمل المستخدمون مسؤولية الامتثال لسياسات مواقع الويب عند استخدام Firecrawl للكشط والبحث والزحف. يُنصح المستخدمون بالامتثال لسياسات الخصوصية وشروط الاستخدام الخاصة بمواقع الويب المعمول بها قبل بدء أي نشاط كشط. بشكل افتراضي، يلتزم Firecrawl بالتوجيهات المحددة في ملف robots.txt الخاص بموقع الويب عند الزحف.
حالة المشروع
المشروع حاليًا في حالة تطوير نشطة، ويقوم الفريق بدمج الوحدات النمطية المخصصة في مستودع متراص. على الرغم من أنه لم يكن جاهزًا تمامًا للنشر المستضاف ذاتيًا، إلا أنه يمكن تشغيله محليًا للتطوير والاختبار. يتمتع المشروع بمجتمع نشط وتحديثات مستمرة، وهو حل رائد في مجال استخراج بيانات الويب.
