أفاد تقرير حالة المصادر المفتوحة لعام 2025 بأن 96% من المؤسسات زادت استخدامَها للمصادر المفتوحة أو حافظت عليه خلال العام الماضي — ولا يزال "انعدام تكلفة الترخيص" هو السبب الأول. لكن هناك نقطة لا يخبرك بها أحد عندما تسحب أداة استخراج من GitHub: "مفتوح المصدر" لا يعني تلقائيًا "آمنًا للاستخدام داخل منتج تجاري".
قضيت جزءًا كبيرًا من هذا العام في مراجعة الأسماء المعتادة — Scrapy وPlaywright وPuppeteer، إلى جانب أدوات الزحف الأحدث المعتمدة على الذكاء الاصطناعي مثل Crawl4AI وScrapeGraphAI — والشيء الذي يهم فعليًا عند اتخاذ قرار تجاري لا يظهر غالبًا في قوائم "أفضل أدوات الاستخراج": نوع الترخيص. معظم القوائم ترتب الأدوات بحسب نجوم GitHub. أما أنا فأرتبها بحسب ما يحدث عندما يسأل فريقك القانوني: "لحظة، هل هذا AGPL؟" في هذه القائمة، تم ترتيب 12 أداة أولًا حسب مدى ملاءمتها للفئة (محللات، أتمتة متصفح، أدوات استخراج معتمدة على الذكاء الاصطناعي، أطر الزحف، ملحقات بدون برمجة)، ثم حسب الترخيص، لأن هذا هو الترتيب الذي تحدث به القرارات فعليًا.
لماذا يُعد نوع الترخيص أول عامل تصفية لأي أداة مفتوحة المصدر لاستخراج بيانات الويب

"مفتوح المصدر" لا تعني "افعل ما تشاء". فـتعريف المصادر المفتوحة يمنع صراحةً التمييز ضد الاستخدام التجاري — لذلك كل أداة في هذه القائمة تسمح بالاستخدام التجاري. لكن كيفية استخدامك لها، وما الالتزامات التي تترتب عليك عند شحنها، يعتمد بالكامل على الترخيص المحدد.
التراخيص المتساهلة — MIT وBSD-3-Clause وApache-2.0 — تتيح لك فعل معظم الأشياء طالما أبقيت إشعار حقوق النشر مرفقًا. وApache-2.0 تذهب خطوة أبعد بمنح صريح لبراءات الاختراع، وهو ما يميل المحامون إلى تفضيله. ولا يفرض أيٌّ من هذه التراخيص الثلاثة عليك نشر الشيفرة المصدرية الخاصة بك.
أما تراخيص الـCopyleft فمختلفة. ترخيص AGPL-3.0 هو الذي يربك الكثيرين، وهو بالضبط الترخيص الذي يستخدمه النواة المستضافة ذاتيًا في Firecrawl (أما SDKs فهي MIT، لكن محرك الاستخراج الأساسي AGPL). ووفقًا لـالقسم 13 من AGPL-3.0، إذا عدلت البرنامج الخاضع للترخيص وسمحت للمستخدمين بالتفاعل مع النسخة المعدلة عبر الشبكة، فعليك إتاحة الشيفرة المصدرية المقابلة لهم. هذا ليس من نوع "كل خدمة SaaS تصبح مفتوحة المصدر" كما تصوره بعض المنتديات — فالالتزام هنا يخص برنامجًا معدلًا ومتاحًا للتفاعل عن بُعد. لكنه سؤال قانوني حقيقي يستحق استشارة فعلية، لا نقاشًا عابرًا في Stack Overflow، قبل أن تبني منتجًا مغلق المصدر فوقه.
ثم هناك فئة "open-core" الأكثر ضبابية. Web Scraper، وهو ملحق Chrome، لديه مستودع تاريخي تحت LGPL-3.0 على GitHub — لكن آخر تحديث برمجي في ذلك المستودع كان في 2017، ولا توجد مطابقة موثقة بين ذلك المصدر القديم والملحق الموجود حاليًا في Chrome Web Store (الإصدار 1.111.13 وقت كتابة هذا المقال). القراءة الصادقة هنا: الملحق المحلي مجاني، بينما طبقة Cloud التي تتضمن الجدولة وتدوير البروكسي هي منتج مملوك منفصل، ووصف المنظومة كلها بأنها "مفتوحة المصدر" يتجاهل هذا الفصل.
كيف قارنا أفضل 12 أداة مفتوحة المصدر لاستخراج بيانات الويب
قيّمت كل أداة عبر سبعة محاور: نوع الترخيص وسهولة الاستخدام التجاري، اللغة/البيئة التشغيلية، دعم عرض JavaScript بشكل أصلي (مقابل الحاجة إلى إضافة مرافقة)، سهولة التعلم، التكلفة الخفية للحوسبة أو البروكسي، مؤشرات صحة المجتمع (المشكلات المفتوحة، وتيرة الإصدارات، وآخر تحديث)، وأفضل حالة استخدام.
تم تجميع القائمة حسب الفئة — محللات ثابتة، أطر أتمتة المتصفح، أدوات استخراج أصلية للذكاء الاصطناعي، أطر الزحف، ثم ملحق المتصفح بدون كود — بدلًا من ترتيبها فقط حسب عدد النجوم. وهذا مقصود. فـBeautiful Soup وScrapy يحلان مشكلتين مختلفتين تمامًا رغم شعبيتهما الكبيرة؛ وترتيبهما على المحور نفسه لا يساعد أحدًا فعليًا في اختيار الأداة المناسبة.
| المعيار | ما الذي راجعته |
|---|---|
| الترخيص والملاءمة التجارية | ترخيص المستودع بدقة، متطلبات النسب، وبنود copyleft/الشبكة |
| البيئة التشغيلية وملاءمة الفريق | Python أو Node/TypeScript أو Java أو متعدد اللغات |
| عرض JavaScript | دعم المتصفح الأصلي مقابل إضافة مرافقة مقابل عدم وجوده |
| نطاق الإطار | محلل فقط، سائق متصفح، خط زحف كامل، أو منتج مُدار |
| صحة المجتمع | نجوم GitHub، تاريخ آخر إصدار، المشكلات المفتوحة، آخر دفع |
| التكلفة الخفية | ذاكرة المتصفح، الحاجة إلى البروكسي، الاعتماد على واجهة نموذج، عبء الصيانة |
| أفضل ملاءمة | تطابق محدد مع الفريق/المهمة مدعوم بقدرات أو مشكلات موثقة |
ملاحظة صريحة بشأن أرقام صحة المجتمع: التطوير الرسمي لـBeautiful Soup يتم على Launchpad وليس GitHub، لذا فإن عدد نجوم GitHub الخاص به (وهو مرآة غير رسمية لديها 223 نجمة وآخر تعديل في 2022) لا يُقارن مباشرةً بالأدوات العشر الأخرى. سأوضح ذلك أدناه بدلًا من التظاهر بأنه يناسب الجدول نفسه بسلاسة.
أفضل مكتبة مفتوحة المصدر للتحليل الثابت للمواقع: BeautifulSoup

BeautifulSoup هي مكتبة Python للتنقل داخل أشجار تحليل HTML/XML والبحث فيها. هي لا تجلب الصفحات، ولا تنفذ JavaScript، ولا تدير طوابير الزحف — بل تتعامل فقط مع الترميز الموجود لديك أصلًا وتتيح لك استخلاص البيانات منه عبر واجهة سهلة. هذا النطاق الضيق هو الفكرة كلها: إنها الأداة التي تلجأ إليها عندما يكون لديك HTML بالفعل وتحتاج فقط إلى استخراج البيانات منه.
- الترخيص: MIT — متساهل، ولا يفرض سوى إبقاء الإشعار
- سهولة التعلم: مناسبة جدًا للمبتدئين فعلًا؛ نموذج الكائنات متسامح
- عرض JavaScript: غير مدعوم أصلًا؛ يجب ربطها بأداة تجلب HTML بعد عرضه أولًا
- قيد معروف: تقر الوثائق الرسمية بأنها "لن تكون أبدًا أسرع من المحللات الموجودة تحتها"، كما أن المحركات الخلفية المختلفة للتحليل (lxml مقابل html5lib مقابل html.parser) قد تنتج أشجارًا مختلفة بشكل ملحوظ عند التعامل مع HTML غير السليم
الأفضل لـ: السكربتات الداخلية السريعة والاستخراج لمرة واحدة من HTML ثابت أو مُجلب مسبقًا — ليس للمشاريع الكبيرة ولا للمواقع كثيفة JavaScript.
أفضل إطار مفتوح المصدر لأتمتة المتصفح لاختبارات التوافق القديمة عبر المتصفحات: Selenium

Selenium هو الاسم الأقدم في هذه القائمة، وقد بُني أساسًا لاختبار المتصفحات ثم أعاد نصف عالم الاستخراج توظيفه لاحقًا. ما يميزه ليس السرعة، بل الاتساع. وتغطي روابط Selenium 4 الرسمية Java وPython وC# وRuby وJavaScript، كما يتحكم في Chrome وEdge وFirefox وSafari عبر معيار W3C WebDriver.
- الترخيص: Apache-2.0
- صحة GitHub: 34,366 نجمة، و98 مشكلة مفتوحة، و12 إصدارًا مستقرًا خلال العام الماضي (الأحدث: 4.47.0)
- عرض JavaScript: أصلي عبر المتصفح الحقيقي
- احتكاك موثق: توثق Selenium نفسها أن المزامنة "من أكثر التحديات شيوعًا" — فجاهزية المستند لا تعني أن العناصر المضافة عبر JS أصبحت جاهزة، كما أن تحديث DOM ديناميكي سيؤدي إلى ظهور
StaleElementReferenceException
الأفضل لـ: الفرق التي تحتاج تغطية متعددة المتصفحات أو اللغات، أو التي تعتمد أصلًا على Selenium في QA وترغب في إعادة استخدام نفس المهارة في الاستخراج.
أفضل إطار مفتوح المصدر لأتمتة المتصفح للمواقع الحديثة كثيفة JavaScript: Playwright

Playwright، الذي تديره Microsoft، هو الرد الحديث على مقولة "Selenium يبدو بطيئًا ومربكًا". فهو يتيح أتمتة Chromium وFirefox وWebKit بشكل أصلي، مع فحوصات جاهزية تلقائية تنتظر حتى تصبح العناصر فعلًا جاهزة — مرئية، مستقرة، ومفعلة — قبل التفاعل معها. هذه الميزة وحدها تلغي كثيرًا من كود WebDriverWait اليدوي الذي يكتبه مستخدمو Selenium.
وهنا تظهر التفاصيل التي تضيع في كل نقاش من نوع "Scrapy vs. Playwright vs. Selenium": Scrapy لا يعرض JavaScript أصلًا. فهو يحتاج إلى ملحق منفصل — scrapy-playwright — ليضيف عرض المتصفح. أما Playwright وPuppeteer فيعرضان الصفحات بشكل أصلي لأن العرض نفسه جزء من المنتج.
- الترخيص: Apache-2.0
- صحة GitHub: 94,443 نجمة، و15 إصدارًا مستقرًا خلال العام الماضي (الأحدث: 1.62.1)
- التكلفة الخفية: ملفات المتصفح وحدها تستهلك تقريبًا 281 MB لـChromium، و187 MB لـFirefox، و180 MB لـWebKit — كما أن التغيير الجذري 1.38 أوقف التنزيل التلقائي للمتصفحات، لذا فإن تثبيت الإصدار داخل صورة Docker مهم جدًا
الأفضل لـ: الفرق التي تزحف إلى تطبيقات React/Vue أحادية الصفحة وتحتاج سلوكًا موثوقًا عبر المتصفحات دون كتابة منطق انتظار يدوي.
أفضل أداة مفتوحة المصدر لأتمتة المتصفح للمشاريع المتمحورة حول Chrome: Puppeteer

Puppeteer، مكتبة الأتمتة التابعة لـGoogle، صُممت لتكون موجهة أولًا نحو Chrome — تكامل عميق مع Chrome DevTools Protocol، وتوليد مدمج للصور وملفات PDF، وغير ذلك. ومن المهم تصحيح افتراض قديم هنا: Puppeteer يدعم Firefox المستقر رسميًا أيضًا، لذا فقول "Chrome فقط" لم يعد دقيقًا تمامًا، حتى لو بقي Chrome هو الاستخدام الأساسي.
- الترخيص: Apache-2.0
- صحة GitHub: 95,458 نجمة، و249 مشكلة مفتوحة — وهو رقم أعلى بوضوح من Playwright، ويستحق أن يؤخذ في الحسبان إذا كنت تقيم مدى الاستجابة
- مراجعة واقعية لمكافحة الروبوتات: توثق المشكلة رقم #7006 في Puppeteer أن عملية تنقل طبيعية تمامًا تم اعتراضها بتحدي Cloudflare — أي أن عرض الصفحة لا يجعلك غير مرئي لأنظمة منع الروبوتات، بكل بساطة
الأفضل لـ: فرق Node.js الموحدة على Chrome، خاصة عندما تحتاج أيضًا إلى توليد PDF/صور إلى جانب الاستخراج.
أفضل أداة استخراج أصلية بالذكاء الاصطناعي لخطوط LLM وRAG: Crawl4AI

Crawl4AI يعتمد داخليًا على Playwright، لكنه مصمم لإخراج Markdown نظيف لخطوط LLM وRAG بدلًا من HTML الخام. وهو يدعم وضع "Markdown نظيف" ووضع "Fit Markdown" المحسن لنوافذ السياق، مع إمكانية استخراج عبر LLM إذا رغبت، بينما تعمل مرشحات CSS/XPath وBM25 من دون الحاجة إلى أي واجهة نموذج.
وهناك نقطة تستحق التوضيح بدقة: GitHub يضع المستودع تحت Apache-2.0، لكن ملف الترخيص الفعلي يضيف شرط نسب إلزامي عند الاستخدامات أو التوزيعات العامة. هذا ليس Apache-2.0 القياسي، بل Apache-2.0 مع شرط خاص بالمشروع، وملف الترخيص نفسه هو ما يجب قراءته، لا شارة GitHub الجانبية.
- صحة GitHub: 77,959 نجمة، وآخر إصدار v0.9.2 (يوليو 2026)
- متطلبات الموارد: توصي إرشادات الاستضافة الذاتية بتوفير 4 GB على الأقل من الذاكرة للحاوية
- عدم استقرار موثق: سجل التغييرات في v0.9.0 أوضح تغييرات جذرية في افتراضات مصادقة خادم Docker ونقل بعض الوحدات — هذا هدف متحرك فعلًا، لذا ثبّت الإصدارات
الأفضل لـ: فرق Python التي تغذي وكلاء LLM أو خطوط RAG ببيانات ويب جديدة ويمكنها إدارة بنية المتصفح بنفسها.
أفضل أداة استخراج أصلية بالذكاء الاصطناعي للنشر المستضاف ذاتيًا مع ملاحظة ترخيص: Firecrawl

النواة المستضافة ذاتيًا في Firecrawl هي المكان الذي يصبح فيه نقاش AGPL ملموسًا. إنها زاحف API-first يعيد Markdown وHTML ولقطات شاشة وبيانات منظمة — وقدراتها فعلية ومبنية على Fetch وPlaywright. لكن اللمسات المصقولة التي يربطها الناس باسم "Firecrawl" — مثل التعامل المُدار مع مضادات الروبوت، وتدوير البروكسي، وطبقة التخفي Fire-engine — تنتمي إلى Firecrawl Cloud، لا إلى المستودع المستضاف ذاتيًا. وتوضح وثائق Firecrawl الخاصة بالاستضافة الذاتية بوضوح أن Fire-engine والسلوك المتقدم لمكافحة الروبوت غير مشمولين في الحزمة الافتراضية المستضافة ذاتيًا، وأن لقطات الشاشة/إجراءات الصفحة تتطلبه.
- الترخيص: بشكل أساسي AGPL-3.0-or-later للنواة، وMIT لـSDKs
- صحة GitHub: 166,527 نجمة — رقم هائل فعلًا ضمن هذه الفئة
- واقع الإعداد: الاستضافة الذاتية تعني تشغيل Redis وRabbitMQ وPostgreSQL، وربما FoundationDB اختياريًا — هذا تشغيل متعدد الخدمات، لا حاوية واحدة
الأفضل لـ: الأدوات الداخلية أو المشاريع مفتوحة المصدر المريحة مع التزام AGPL بإتاحة المصدر. فكّر مرتين قبل بناء منتج تجاري مغلق المصدر مباشرة فوق النواة المستضافة ذاتيًا من دون مراجعة قانونية.
أفضل أداة استخراج أصلية بالذكاء الاصطناعي للاستخراج باللغة الطبيعية: ScrapeGraphAI

ScrapeGraphAI يتيح لك وصف ما تريد باللغة الطبيعية بدلًا من كتابة selectors — فهو خط أنابيب قائم على الرسم البياني، وتتولى استدعاءات LLM مهمة مطابقة الحقول. وتستخدم هذه المكتبة المرخصة تحت MIT بنيتك الخاصة: مفتاح واجهة LLM الخاص بك (أو نموذج Ollama محلي إذا كنت تريد تفادي فاتورة الرموز)، ونسخة Playwright التي تضبطها أنت.
وهنا الملاحظة التي تستحق ذكرها صراحة: "مفتوح المصدر" هنا لا يعني "من دون تكلفة مستمرة". فكل عملية استخراج تستهلك رموزًا من النموذج الذي ربطته. كما أن الاستخراج المبني على الأوامر النصية له نقطة فشل لا تمتلكها الأدوات القائمة على selectors: إحدى المشكلات المفتوحة تذكر أن الخط ينجز كل المراحل بنجاح لكنه يعيد حقولًا فارغة/NA لبيانات كانت موجودة بوضوح في الصفحة — وهو فشل صامت لا تنتجه CSS/XPath الحتمية.
- الترخيص: MIT
- صحة GitHub: 29,447 نجمة، وآخر إصدار مستقر v2.1.6
الأفضل لـ: مهام الاستخراج غير المتكررة أو غير المنتظمة عندما تكون مرونة الأوامر النصية أهم من تكلفة النموذج وعبء التحقق.
أفضل أداة استخراج أصلية بالذكاء الاصطناعي للاستخراج الخفيف الخالي من النماذج: AutoScraper

AutoScraper يتجاوز LLM بالكامل. أنت تعطيه عنوان URL وقيمة نموذجية تريد استخراجها؛ فيستنتج القواعد البنائية من الصفحة ويعيد استخدامها على صفحات مشابهة. لا مفتاح API للنموذج، ولا فاتورة رموز — فقط requests وBeautifulSoup في الخلفية.
احذر من وصف "مهجور" الذي يطلقه بعض المتحدثين في المنتديات على هذه الأداة. فهذا غير دقيق: كانت هناك commits فعلية في منتصف 2025، وآخر دفع للمستودع كان في يوليو 2026. لكن الإصدار المعبأ الذي سيقوم المستخدمون فعليًا بتثبيته عبر pip install ما يزال v1.1.14 من عام 2022. والوصف العادل هو "وتيرة إصدارات الحزم بطيئة" — لا "مشروع ميت".
- الترخيص: MIT
- صحة GitHub: 7,844 نجمة
- الحد الصارم: لا يوجد عرض JavaScript أصلي — فهو يستدعي
requests.get()ويحلل HTML العائد، لا أكثر
الأفضل لـ: مهام الاستخراج الصغيرة والمتكررة على صفحات ثابتة ومستقرة بنيويًا، عندما تكون مرتاحًا لإعادة التدريب أحيانًا بعد إعادة التصميم.
أفضل إطار مفتوح المصدر للزحف واسع النطاق لمشاريع Python: Scrapy

Scrapy هو إطار الزحف الاحترافي في Python — محرك، مجدول، أداة تنزيل، خطوط item pipelines، وكل شيء تقريبًا. إذا كانت Beautiful Soup مشرطًا، فإن Scrapy هو غرفة العمليات الكاملة: شبكات غير متزامنة، وضوابط تزامن لكل نطاق، وAutoThrottle، ومصدّرات تكتب مباشرة إلى CSV أو JSON أو JSON Lines أو XML أو التخزين السحابي.
والتفصيل الذي ذكرته سابقًا يستحق التكرار هنا لأنه أكبر مصدر للالتباس في Scrapy: لا يملك Scrapy أي عرض JavaScript أصلي. وتشير وثائقه الرسمية إلى أنك غالبًا يجب أن تجد الطلب البياني الأساسي وتعيد إنتاجه أولًا — لأن ذلك عادة أسرع وأكثر اكتمالًا من عرض متصفح كامل — وتحتفظ بـscrapy-playwright للحالات التي يصبح فيها المتصفح ضروريًا حقًا.
- الترخيص: BSD-3-Clause
- صحة GitHub: 63,830 نجمة، و304 مشكلة مفتوحة، و9 إصدارات مستقرة خلال العام الماضي (الأحدث: 2.17.0)
- فجوة تحديد المعدل: يذكر طلب تحسين مفتوح أن AutoThrottle يضبط وفقًا للكمون، لا لردود HTTP 429 — لذا فإن التراجع الواعي للاستجابات ما يزال عليك بناؤه بنفسك
الأفضل لـ: الزحف واسع النطاق للمواقع الثابتة حيث تكون خطوط المعالجة والمرونة في التصدير أهم من عرض JavaScript.
أفضل إطار مفتوح المصدر للزحف في مشاريع Java الإنتاجية: Crawlee

Crawlee، من فريق Apify، هو أقرب نظير في Node/TypeScript إلى Scrapy — باستثناء أن عرض JavaScript ليس مضافًا لاحقًا، بل مدمج من البداية عبر فئات زحف مدعومة بـPlaywright وPuppeteer تعمل فوق طبقة مشتركة من الطوابير والتخزين وتدوير البروكسي.
- الترخيص: Apache-2.0
- صحة GitHub: 25,364 نجمة، و8 إصدارات مستقرة خلال العام الماضي (الأحدث: 3.18.1)
- تفصيل ذكي: يقوم
AutoscaledPoolبتعديل التزامن ديناميكيًا بناءً على الحمل الفعلي على CPU والذاكرة وحلقة الأحداث — وتوضح الوثائق صراحةً أن رفع الحد الأدنى للتزامن أكثر من اللازم قد يسبب انهيار عملية الزحف بالكامل
الأفضل لـ: فرق Node.js/TypeScript التي تريد إدارة طوابير احترافية وعرض JavaScript جاهز للإنتاج دون تجميع مكونات شبيهة بـScrapy بأنفسهم.
أفضل إطار مفتوح المصدر للزحف في فهرسة Java للمؤسسات: Apache Nutch

Apache Nutch هو الاستثناء في هذه القائمة — زاحف Java مُصمم لفهرسة الويب على نطاق واسع، وغالبًا ما يغذي Solr أو Elasticsearch أو OpenSearch. ليس هو الأداة التي تلجأ إليها لاستخراج أسعار المنتجات من موقع منافس؛ بل هو الأداة التي تستخدمها فرق البحث المؤسسي عندما تبني طبقة الزحف أسفل فهرس البحث.
- الترخيص: Apache-2.0
- صحة GitHub: 3,276 نجمة فقط، لكنه دفع تحديثًا في أغسطس 2026 — وانخفاض النجوم يعكس تخصصًا ضيقًا لا إهمالًا
- التعامل مع JavaScript: يتطلب الملحق المنفصل
protocol-selenium؛ وتوثق تذكرة JIRA فشلًا في بروكسي HTTPS تحديدًا داخل هذا المسار
الأفضل لـ: الفرق التي تشغل أصلًا بنية Java/Hadoop وتحتاج فهرسة ويب على مستوى المؤسسات، لا استخراج بيانات عابرًا.
أفضل ملحق متصفح بدون كود ومفتوح المصدر جزئيًا: Web Scraper

Web Scraper هو خيار النقر بدلًا من البرمجة — منشئ sitemap وشجرة selectors يعمل داخل Chrome DevTools. يتتبع التصفح الصفحي، وينقر الأزرار، ويمرر صفحات التحميل اللانهائي، ويصدّر محليًا إلى CSV/XLSX، وكل ذلك من دون كتابة سطر برمجي واحد.
الفصل بين open-core هنا مهم أكثر من أي مكان آخر تقريبًا في هذه القائمة. الاستخراج المحلي مجاني فعلًا. لكن الجدولة، والتنفيذ السحابي، والوصول عبر API، وإدارة البروكسي كلها موجودة خلف Web Scraper Cloud، وهو منتج مدفوع منفصل. وكما ذُكر سابقًا، فإن مستودع LGPL-3.0 المتاح علنًا لم يحصل على commit برمجي منذ 2017 — لذا تعامل مع "مفتوح المصدر" بوصفه وصفًا للنسب التاريخي للملحق المحلي، لا ضمانًا لما يعمل اليوم في إصدار Chrome Web Store الحالي.
الأفضل لـ: الأفراد أو الفرق الصغيرة التي تقوم باستخراج محلي متقطع ولا تريد كتابة كود ولا تحتاج إلى نطاق واسع.
المحللات الثابتة مقابل المتصفحات بدون واجهة: اختيار الأداة المناسبة للمواقع كثيفة JavaScript

إليك رقمًا مهمًا لربط الصورة بالواقع: 98.9% من المواقع تستخدم JavaScript كلغة من جهة العميل. لكن هذا الرقم يُقتبس خطأً باستمرار على أنه "98.9% من المواقع تحتاج متصفحًا بدون واجهة لاستخراجها" — وهذا ليس ما يقوله. فهو يقيس وجود JavaScript، لا ما إذا كانت بياناتك المستهدفة موجودة في HTML الأولي أو تظهر فقط بعد تنفيذ السكربت.
هذا التمييز هو نقطة القرار الحقيقية. قسم الأدوات الاثنتي عشرة إلى فئتين صادقتين:
المحللات الثابتة — BeautifulSoup وAutoScraper — سريعة ورخيصة وعمياء تمامًا تجاه أي شيء يُعرض من جهة العميل. إذا كانت البيانات التي تريدها موجودة في استجابة HTML الأولية أو في نقطة نهاية JSON يمكنك استدعاؤها مباشرة، فهذه الأدوات تفوز دائمًا من حيث السرعة والبساطة.
أطر المتصفح بدون واجهة — Playwright وPuppeteer وSelenium والمتصفحات الزاحفة في Crawlee — تنفذ JavaScript فعلًا، ما يعني أنها تستهلك موارد حقيقية. وتُظهر بيانات HTTP Archive لعام 2024 أن الوسيط لحمولة JavaScript في الصفحة يصل إلى 558 KB على الهاتف مع 22 طلب Java منفصل — وهي عبء على المتصفح بدون واجهة في كل تحميل صفحة، مقارنةً بمحلل ثابت يلتقط HTML الخام فقط.
أما Scrapy فيقف في مكان وسط غريب يستحق التذكير به مرة أخرى: هو ليس هذا ولا ذاك. إنه إطار زحف كامل من دون أي عرض أصلي، ويحتاج إلى scrapy-playwright مضافًا إذا كنت بحاجة إلى JavaScript أصلًا.
التكلفة الخفية لـ"المجاني": البروكسي والحوسبة وساعات الصيانة

رسوم الترخيص صفر دولار هي مجرد عنصر واحد من التكلفة الإجمالية، وليست الصورة كاملة. ويمكن تقسيم التكلفة الحقيقية إلى عدة بنود واضحة:
الحوسبة. تشغيل المتصفحات بدون واجهة على نطاق واسع يعني الدفع مقابل ثواني المتصفح، لا وقت الخادم فقط. AWS Fargate يتقاضى تقريبًا 0.000011244 دولار لكل ثانية vCPU و0.000001235 دولار لكل GB-ثانية على Linux/x86 — وعندما تضرب ذلك بعدد مثيلات Playwright المتزامنة، تتصاعد التكلفة أسرع مما يتوقعه كثيرون.
البروكسيات. تُظهر أسعار Bright Data المنشورة أن البروكسيات السكنية تبدأ تقريبًا من 5 دولارات/GB، وبروكسيات مراكز البيانات من 0.9 دولار/IP — و"عرض النطاق" في هذه النماذج التسعيرية يشمل حزم الطلب والاستجابة معًا، لا ما تنزله فقط. هذا هو البند الذي يفاجئ الفرق: تجنب حدود المعدل والحظر ليس مجانيًا، بل بند متكرر في ميزانية البنية التحتية.
الصيانة. كل محلل ثابت وكل أداة قواعد بنيوية في هذه القائمة معرضة لأن تؤدي إعادة تصميم الموقع إلى كسر selectors. حتى مثال README الخاص بـAutoScraper احتاج إلى تحديث السعر بعد تغيير الموقع المستهدف. هذا هو بند "التكلفة الخفية للحوسبة/البروكسي" الذي لا يذكره ملصق الترخيص المجاني أبدًا — ساعات الهندسة التي تُصرف لإصلاح الاستخراج المعطل بعد أن يطلق فريق التطوير في الموقع المستهدف إعادة تصميم.
وبالنسبة للفرق التي تصطدم بهذا الجدار باستمرار — كسر selectors المتكرر، وإدارة حسابات البروكسي، وعبء DevOps الذي لا ينتهي — فإن stack مفتوح المصدر ومُستضاف ذاتيًا ليس تلقائيًا الخيار الأرخص عندما تُحسب ساعات المهندسين. تتبع إضافة Thunderbit على Chrome نهجًا مختلفًا لغير المطورين: وجّهها إلى صفحة مُصرح بها، واضغط One Click Extract، وستحلل الصفحة لتفهم ما الذي يجب استخراجه — من دون selectors، ومن دون سكربت صيانة عندما يتغير التخطيط. ليست بديلًا عن Scrapy على نطاق إطار الزحف، لكنها خطوة تالية معقولة لمستخدم أعمال يدير يدويًا مجموعة قواعد AutoScraper هشة.
إطار لاتخاذ القرار: مطابقة الأداة المناسبة مع قيود فريقك
معظم المقارنات تتوقف عند "الأفضل لحالة X". هذا متغير واحد فقط. عمليًا، تدير الفرق أربعة متغيرات على الأقل في الوقت نفسه: الحاجة إلى عرض JS × لغة الفريق × صيغة المخرجات المطلوبة × قيد الترخيص.
| وضع الفريق | الأداة/الأدوات الأنسب | السبب |
|---|---|---|
| Python، HTML ثابت، سكربت سريع | BeautifulSoup، AutoScraper | لا حاجة لـJS، ترخيص MIT، إعداد بسيط جدًا |
| Python، زحف كبير ومنظم | Scrapy | BSD-3-Clause، خطوط معالجة مدمجة، واستخدم scrapy-playwright فقط إذا كان JS ضروريًا فعلًا |
| Node/TypeScript، زحف إنتاجي مع JS | Crawlee | Apache-2.0، ودعم المتصفح مدمج داخل نظام الطوابير |
| متعدد اللغات، تغطية واسعة للمتصفحات | Selenium | Apache-2.0، أوسع تغطية للغات والمتصفحات |
| أتمتة SPA حديثة، عبر المتصفحات | Playwright | Apache-2.0، عرض أصلي، وانتظار تلقائي مدمج |
| أتمتة خاصة بـChrome مع لقطات/PDF | Puppeteer | Apache-2.0، تكامل عميق مع CDP |
| خط Markdown للـLLM/RAG | Crawl4AI | Apache-2.0 + شرط نسب؛ راجعه مع فريقك القانوني بشأن الشرط الإضافي |
| استخراج غير منتظم قائم على الأوامر النصية | ScrapeGraphAI | MIT، لكن احسب تكلفة رموز LLM |
| زاحف مستضاف ذاتيًا يطابق API، ومتسامح مع AGPL | Firecrawl | AGPL-3.0-or-later؛ احصل على موافقة قانونية قبل بناء SaaS مغلق المصدر فوقه |
| فهرسة Java/Hadoop للمؤسسات | Apache Nutch | Apache-2.0، مُصمم للبنية التحتية للبحث |
| بدون كود، استخدام متقطع، لغير المطورين | ملحق Web Scraper | مجاني محليًا؛ افهم فصل open-core قبل افتراض الشفافية الكاملة |
مقارنة جميع أدوات استخراج بيانات الويب مفتوحة المصدر الـ12 جنبًا إلى جنب
| الأداة | اللغة | الترخيص | آمنة للاستخدام التجاري؟ | عرض JS | سهولة التعلم | الأفضل لـ |
|---|---|---|---|---|---|---|
| BeautifulSoup | Python | MIT | ✅ نعم | لا يوجد (تحتاج إلى أداة مرافقة) | منخفضة | تحليل HTML الثابت |
| Selenium | متعدد اللغات | Apache-2.0 | ✅ نعم | أصلي | متوسطة | الاختبار ثم الاستخراج عبر متصفحات/لغات متعددة |
| Playwright | JS/TS/Python/Java/.NET | Apache-2.0 | ✅ نعم | أصلي | متوسطة | المواقع الحديثة كثيفة JS |
| Puppeteer | Node.js/TS | Apache-2.0 | ✅ نعم | أصلي | متوسطة | الأتمتة المتمحورة حول Chrome |
| Crawl4AI | Python | Apache-2.0 + شرط نسب | ⚠️ راجع الشرط | أصلي (عبر Playwright) | متوسطة | خطوط Markdown للـLLM/RAG |
| Firecrawl (مستضاف ذاتيًا) | TypeScript | AGPL-3.0-or-later (النواة) | ⚠️ مشروط | أصلي (عبر Playwright) | مرتفعة (متعددة الخدمات) | زحف AI مستضاف ذاتيًا، ومتسامح مع AGPL |
| ScrapeGraphAI | Python | MIT | ✅ نعم | أصلي (عبر Playwright) | متوسطة | الاستخراج باللغة الطبيعية |
| AutoScraper | Python | MIT | ✅ نعم | لا يوجد | منخفضة | المهام الخفيفة المتكررة على صفحات ثابتة |
| Scrapy | Python | BSD-3-Clause | ✅ نعم | يحتاج إلى مرافقة | مرتفعة | زحف كبير النطاق للمواقع الثابتة |
| Crawlee | Node.js/TS | Apache-2.0 | ✅ نعم | أصلي | متوسطة | زواحف Node.js الإنتاجية |
| Apache Nutch | Java | Apache-2.0 | ✅ نعم | يحتاج إلى ملحق | مرتفعة | فهرسة البحث المؤسسية |
| Web Scraper (extension) | غير ذلك (بدون كود) | open-core | ⚠️ يعتمد على الباقة | أصلي (متصفح حي) | منخفضة | الاستخدام المتقطع لغير المطورين |
الخلاصة: أي أداة مفتوحة المصدر لاستخراج بيانات الويب يجب أن تستخدم؟
لا توجد أداة "أفضل" واحدة هنا — فالجواب الصحيح يعتمد على قيود الترخيص، ولغة فريقك، وما إذا كانت بياناتك المستهدفة موجودة في HTML ثابت أم خلف جدار JavaScript. يتفوق Scrapy في الزحف الثابت واسع النطاق على Python. ويتفوق Playwright أو Crawlee عندما يكون عرض JS غير قابل للتفاوض. وتناسب Crawl4AI الحالات التي تغذي فيها خط LLM، مع ملاحظة أن ملف ترخيصها يتضمن شرط نسب إضافيًا يستحق قراءة سريعة. أما النواة المستضافة ذاتيًا في Firecrawl فهي قوية لكنها تأتي مع نقاش AGPL ينبغي أن يكون فريقك القانوني جزءًا منه، لا أن يُتجاوز.
وإذا كانت صيانة selectors وإدارة البروكسي تستهلك ساعات هندسية أكثر من عملية الاستخراج نفسها، فغالبًا هذه إشارة إلى أن الوقت قد حان للنظر في بديل بدون كود مثل Thunderbit بدلًا من إضافة طبقة أخرى فوق stack مفتوح المصدر ومُستضاف ذاتيًا.
أسئلة شائعة حول أدوات استخراج بيانات الويب مفتوحة المصدر
هل من القانوني استخدام أدوات مفتوحة المصدر لاستخراج بيانات الأعمال؟
بشكل عام، جمع البيانات المتاحة للعامة ينطوي على مخاطر أقل من جمع البيانات خلف تسجيل دخول أو جدار دفع، لكنه ليس قانونيًا تلقائيًا في كل الحالات. تحقق دائمًا من شروط استخدام الموقع المستهدف وملف robots.txt — مع ملاحظة أن robots.txt هو بروتوكول طلب، وليس آلية تفويض، لذا فإن اتباعه ممارسة جيدة لكنه لا يمنحك إذنًا قانونيًا بحد ذاته. كما تنطبق قوانين الخصوصية مثل GDPR بغض النظر عن كون البيانات مرئية للعامة. هذا ليس مشورة قانونية — استشر محاميًا لأي استخدام يتجاوز التجارب البسيطة قليلة الحجم.
هل يعني "مفتوح المصدر" أن الأداة مجانية للاستخدام التجاري؟
نعم، بالمعنى الذي يمنع فيه تعريف المصادر المفتوحة التراخيص من التمييز ضد الاستخدام التجاري. لكن "صالحة للاستخدام التجاري" و"من دون التزامات" أمران مختلفان — فـAGPL-3.0 (المستخدم في نواة Firecrawl المستضافة ذاتيًا) يسمح بالاستخدام التجاري، لكنه ما يزال يفرض عليك إتاحة المصدر المقابل للنسخ المعدلة المعروضة عبر الشبكة. أما MIT وBSD وApache-2.0 فلا تفرض مثل هذا الالتزام.
ما الفرق بين أداة استخراج مفتوحة المصدر وأداة استخراج بدون كود؟
أدوات الاستخراج مفتوحة المصدر مثل Scrapy وPlaywright وBeautifulSoup تتطلب منك كتابة كود، وإدارة البنية التحتية، والتعامل مع منطق الزحف والبروكسيات والتصدير بنفسك. أما أدوات بدون كود مثل ملحق Web Scraper على Chrome أو إضافة Thunderbit للمتصفح فتعتمد على واجهة مرئية أو تحليل الصفحة بالذكاء الاصطناعي للتعرّف على الحقول واستخراجها، مقابل مرونة أقل لكن سهولة إعداد أعلى بكثير.
ما أفضل أداة مفتوحة المصدر لغير المطورين؟
معظم الأدوات في هذه القائمة — Scrapy وPlaywright وPuppeteer وCrawlee وغيرها — تفترض أنك قادر على كتابة كود. أما للمستخدمين غير التقنيين، فيقدم ملحق Web Scraper على Chrome إعدادًا بالنقر، رغم أن ميزات الجدولة والسحابة خلف باقة مدفوعة. وإذا كنت تريد اكتشاف الحقول تلقائيًا من دون لمس selectors، فبدءك بأداة بدون كود تعمل كوكيل مثل إضافة Thunderbit للمتصفح سيكون أكثر عملية.
لماذا يحتاج Scrapy إلى ملحق منفصل لعرض JavaScript؟
بُني Scrapy كإطار HTTP-first — فهو يرسل الطلبات ويحلل HTML العائد من دون تنفيذ أي سكربت من جهة العميل. هذه البنية تجعله سريعًا وخفيفًا في الزحف للمواقع الثابتة، لكنها تعني أن المحتوى المعروض عبر JavaScript لا يكون موجودًا أصلًا في الاستجابة التي يتلقاها Scrapy. ويجسر scrapy-playwright هذه الفجوة عبر تمرير طلبات محددة من خلال مثيل Playwright حقيقي عندما يصبح العرض ضروريًا.
تعرف أكثر
- أفضل 15 مشروعًا على GitHub للاستخراج من الويب في 2026، مع أفضل بديل بدون كود
- Crawl4AI يشغّل متصفحًا حقيقيًا لإخراج Markdown — ولن يصلح selectors الخاصة بك نيابةً عنك
- اختبرت Playwright وPuppeteer على نفس سيناريوهات الاستخراج
- أفضل 10 أدوات لاستخراج بيانات الويب بدون كود للحلول المؤتمتة
- هل استخراج بيانات الويب غير قانوني؟ فهم التداعيات القانونية


