عن المشروع
Crawlee هي مكتبة لجمع البيانات من الويب وأتمتة المتصفحات لـ Node.js، مكتوبة بلغة TypeScript وتُوزَّع كحزمة NPM باسم `crawlee`. تهدف إلى تغطية الزحف والجمع من البداية إلى النهاية، وتوفر واجهة واحدة لكل من الزحف عبر HTTP والزحف عبر متصفح حقيقي.
القدرات الرئيسية المذكورة في README:
- واجهة واحدة للزحف عبر HTTP والمتصفحات بلا رأس
- طابور دائم لعناوين URL المراد زحفها، يدعم الترتيب بالعرض أولاً وبالعمق أولاً
- تخزين قابل للتوصيل للبيانات الجدولية والملفات، ويكون افتراضياً في مجلد محلي `./storage`
- توسّع تلقائي مع موارد النظام المتاحة
- تدوير متكامل للبروكسي وإدارة الجلسات
- دورات حياة قابلة للتخصيص عبر الخطافات
- واجهة سطر أوامر لإنشاء المشاريع (`npx crawlee create my-crawler`)
- توجيه قابل للتكوين ومعالجة الأخطاء وإعادة المحاولة
- ملفات Dockerfile جاهزة للنشر
- مكتوبة بلغة TypeScript مع استخدام الأنواع العامة
تشمل ميزات الزحف عبر HTTP دعماً لـ HTTP2 بدون إعدادات (حتى مع البروكسيات)، وتوليداً تلقائياً لترويسات تشبه المتصفح، ومحاكاة بصمات TLS الخاصة بالمتصفحات، ومحللات HTML سريعة مدمجة (Cheerio وJSDOM)، وإمكانية جمع بيانات من واجهات JSON.
تشمل ميزات الزحف عبر متصفح حقيقي عرض JavaScript والتقاط لقطات الشاشة، ودعم الوضع بلا رأس والوضع المرئي، وتوليد بصمات تشبه البشر بدون إعدادات، وإدارة تلقائية للمتصفح، وإمكانية استخدام Playwright وPuppeteer عبر الواجهة نفسها مع Chrome وFirefox وWebkit وغيرها.
يتطلب التثبيت Node.js الإصدار 16 أو أحدث. تستخدم البداية السريعة الموصى بها واجهة سطر أوامر Crawlee، بينما يتضمن التثبيت اليدوي إضافة `crawlee` ومكتبة أتمتة متصفح مثل `playwright` إلى مشروع قائم. يعرض مثال قصير `PlaywrightCrawler` يسجل عناوين الصفحات، ويدفع النتائج إلى مجموعة بيانات، ويضيف الروابط إلى الطابور. تُنشر الإصدارات التجريبية باسم `crawlee@next`.
المشروع مطوَّر من قبل Apify، وهو مفتوح المصدر ويعمل في أي مكان، مع توثيق لدعم النشر على منصة Apify. وهو مرخَّص بموجب Apache License 2.0. تشمل قنوات الدعم GitHub issues وStack Overflow وGitHub Discussions وخادم Discord. كما يُشار إلى نظير بلغة Python باسم Crawlee for Python.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.