
مكتبة Node.js لكشط الويب وأتمتة المتصفح لبناء برامج زحف موثوقة مع دعم HTTP والمتصفح بلا واجهة، وتدوير الوكلاء، وبصمات تشبه البشر.
يغطي Crawlee عملية الزحف والكشط من البداية إلى النهاية ويساعدك على بناء أدوات كشط موثوقة. بسرعة.
ستبدو برامج الزحف الخاصة بك بشرية وستمر تحت رادار الحمايات الحديثة ضد الروبوتات حتى مع الإعدادات الافتراضية. يمنحك Crawlee الأدوات اللازمة للزحف إلى الويب بحثًا عن الروابط، وكشط البيانات، وتخزينها على القرص أو السحابة، مع بقائه قابلًا للتخصيص ليناسب احتياجات مشروعك.
يتوفر Crawlee كحزمة NPM باسم crawlee.
👉 اطّلع على الوثائق الكاملة والأدلة والأمثلة على موقع مشروع Crawlee 👈
هل تفضل 🐍 Python بدلًا من JavaScript؟ 👉 اطّلع على Crawlee for Python 👈.
نوصي بزيارة درس المقدمة في وثائق Crawlee لمزيد من المعلومات.
يتطلب Crawlee إصدار Node.js 22.13 أو أعلى.
أسرع طريقة لتجربة Crawlee هي استخدام Crawlee CLI واختيار مثال البدء. ستقوم الأداة بتثبيت جميع التبعيات اللازمة وإضافة كود جاهز لتجربته.
npx crawlee create my-crawler
cd my-crawler
npm start
إذا كنت تفضل إضافة Crawlee إلى مشروعك الخاص، جرّب المثال أدناه. نظرًا لأنه يستخدم PlaywrightCrawler فإننا نحتاج أيضًا إلى تثبيت Playwright. وهو غير مضمّن مع Crawlee لتقليل حجم التثبيت.
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to ./storage/datasets/default
await Dataset.pushData({ title, url: request.loadedUrl });
// Extract links from the current page
// and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
بشكل افتراضي، يخزّن Crawlee البيانات في ./storage داخل دليل العمل الحالي. يمكنك تجاوز هذا الدليل عبر إعدادات Crawlee. للتفاصيل، راجع دليل الإعدادات، وتخزين الطلبات، وتخزين النتائج.
نوفّر إصدارات تجريبية آلية لكل تغيير برمجي مدموج في Crawlee. يمكنك العثور عليها في npm ضمن قائمة الإصدارات. إذا كنت ترغب في اختبار ميزات جديدة أو إصلاحات أخطاء قبل إصدارها، فلا تتردد في تثبيت إصدار تجريبي بهذه الطريقة:
npm install crawlee@next
إذا كنت تستخدم أيضًا Apify SDK، فأنت بحاجة إلى تحديد تجاوزات التبعيات في ملف package.json الخاص بك حتى لا ينتهي بك الأمر بإصدارات متعددة من Crawlee مثبتة:
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
Crawlee مفتوح المصدر ويعمل في أي مكان، ولكن نظرًا لأنه مطوَّر بواسطة Apify، فمن السهل إعداده على منصة Apify وتشغيله في السحابة. قم بزيارة موقع Apify SDK لمعرفة المزيد حول نشر Crawlee على منصة Apify.
إذا وجدت أي خطأ أو مشكلة في Crawlee، فيرجى إرسال بلاغ على GitHub. للأسئلة، يمكنك السؤال على Stack Overflow، أو في GitHub Discussions، أو يمكنك الانضمام إلى خادم Discord الخاص بنا.
مساهماتك البرمجية مرحّب بها، وسيُثنى عليك إلى الأبد! إذا كانت لديك أي أفكار للتحسين، فإما أن ترسل بلاغًا أو تنشئ طلب سحب (pull request). لإرشادات المساهمة ومدونة السلوك، راجع CONTRIBUTING.md.
هذا المشروع مرخّص بموجب Apache License 2.0 - راجع ملف LICENSE.md للتفاصيل.