Crawl4AI يشغّل متصفحًا حقيقيًا لتحويل الصفحات إلى Markdown — ولا، لن يصلح أدوات التحديد الخاصة بك تلقائيًا

آخر تحديث في July 17, 2026
Crawl4AI يشغّل متصفحًا حقيقيًا لتحويل الصفحات إلى Markdown — ولا، لن يصلح أدوات التحديد الخاصة بك تلقائيًا
ملخص بالذكاء الاصطناعي
تُميّز هذه المراجعة لـ Crawl4AI بين الأداة الحقيقية والضجة المحيطة بها. فهي تعرض Crawl4AI كمكتبة تعتمد على متصفح لتحويل الصفحات إلى Markdown واستخراج البيانات، لا كنظام محددات ذاتية الإصلاح. وتتضمن الاختبارات صفحات ثابتة، وصفحات تُعرض عبر JavaScript، وحجم إخراج Markdown، وصفحة 500 مقصودة، وزحفًا عميقًا صغيرًا. وقد أدّى Crawl4AI أداءً جيدًا عند ضبطه بشكل صريح، خصوصًا في Markdown المُعرض واستخراج البيانات وفق المخطط، لكن المراجعة توثّق أيضًا ثقل الإعداد، والعبارة المضللة عن anti-bot على صفحات الخطأ الرقيقة، وسلوك الانتظار في الزحف العميق. ويمكن قراءته على أفضل وجه على أنه معيار عملي للمطورين الذين يبنون خطوط RAG أو وكلاء.

تدور حول Crawl4AI فكرة يتكرر الحديث عنها بإصرار: أنه يملك نوعًا من الذكاء التكيفي، أو كأنه دماغ يعالج نفسه بنفسه ويعيد العثور على بياناتك إذا أعاد الموقع ترتيب HTML. هذا غير صحيح. تلك مهمة أداة أخرى (Scrapling، إذا كنت تتساءل). أما Crawl4AI فهو شيء أوضح وأكثر فائدة عندما تفهمه كما هو: متصفح بلا واجهة يعمل كرأس محرك تشغيل مع محوّل Markdown، وبجانبه مستخرج يعتمد على CSS/XPath.

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

ما هو Crawl4AI فعلًا، وما الخرافة التي ليس هو عليها

إذا أزلت النصوص التسويقية، فـ Crawl4AI عبارة عن ثلاث طبقات مكدّسة فوق بعضها.

أولًا، متصفح حقيقي. في الخلفية يعتمد على Playwright مع نسخة معدلة للتخفي تُسمى Patchright، ليحمّل الصفحة كما يفعل Chrome — يشغّل JavaScript، يبني DOM، وينتظر المحتوى إذا طلبت منه ذلك. وهذه هي النقطة الأهم. إنه ليس عميل HTTP يلتقط HTML الخام وينتهي الأمر. إنه يشغّل محرك عرض فعلي.

ثانيًا، مولّد Markdown. بعد عرض الصفحة، يحوّل Crawl4AI الـ DOM إلى Markdown، وهو التنسيق الذي تحب نماذج اللغة وخطوط RAG التهامه. ويقدّم القائمون عليه المشروع بوصفه زاحفًا صديقًا لنماذج LLM لهذا السبب تحديدًا — أعطه رابطًا، واحصل على نص يمكن للنموذج أن يستدل عليه.

ثالثًا، مستخرج منظم. إذا كنت تريد JSON نظيفًا بدل النص السردي، فإنك تزوّده بمخطط — عبر محددات CSS أو XPath mapped إلى أسماء الحقول — باستخدام JsonCssExtractionStrategy، ثم يعيد سجلات. (هناك أيضًا مسار استخراج يعتمد على LLM، لكنه يتطلب مفتاح API ولم أختبره، لذا لن أتظاهر بأنني أعرف كيف يتصرف.)

وهنا بيت القصيد، وهو ما تخطئ فيه شائعة "الذكاء التكيفي": ذلك المخطط ثابت وتكتبه يدويًا. تخبر Crawl4AI أن اسم المنتج موجود في .product-card h3 وأن السعر في .price، وإذا غيّر الموقع هذه الفئات غدًا فستتعطل المحددات وتبقى معطلة. لا يوجد أي إصلاح ذاتي. لا إعادة مطابقة ضبابية. إنها متصفح ومحوّل ومحددات أنت من يعتني بها — لا أكثر ولا أقل. فهم هذا من البداية يجنّبك توقع ميزة موجودة في مستودع آخر.

العناصر الأساسية التي ستتعامل معها تسمّى بشكل منطقي: AsyncWebCrawler هو المحرك، وBrowserConfig يهيئ المتصفح، وCrawlerRunConfig يتحكم في تشغيل واحد (بما في ذلك wait_for الذي سأعود إليه بعد قليل). وهي واجهة Python غير متزامنة أولًا، وتصبح واضحة جدًا حين تستقر الأسماء في ذهنك.

وللتوثيق، المستودع يضم 71,259 نجمة، و7,326 تفريعة، ورخصة Apache-2.0 حتى تاريخ 2026-07-07 (unclecode/crawl4ai)، وعلى الإصدار v0.9.0. أعداد النجوم تتغير، لذا اعتبرها لقطة زمنية لا قراءة مباشرة — لكنها تخبرك بأن المشروع مستخدم بكثافة، ومرخّص بسخاء، وليس تجربة نهاية أسبوع.

الإعداد: حين تهبط على جهازك حِزمتا متصفح كاملتان

المرحلة التي يتوقف فيها Crawl4AI عن التصرف كمكتبة خفيفة هي التثبيت، وهي أيضًا الجزء الذي نادرًا ما يذكره أي شرح.

تثبيت pip نفسه يمر بسلاسة. أمر pip install -U crawl4ai اكتمل من دون مشاكل — والمثير أنه ثُبّت على Python 3.14.2، رغم أن التوثيق يطلب نظريًا >=3.10 ولم يكن على جهازي أي إصدار 3.10–3.13. وهذه إشارة جيدة لمن يعمل على مفسر حديث جدًا.

ثم تشغّل crawl4ai-setup، وهنا يبدأ استهلاك القرص.

crawl4ai-setup يحمل حزمتين كاملتين من المتصفحات — Playwright وPatchright

خطوة الإعداد لا تجلب متصفحًا واحدًا، بل تُنزّل حزمتين كاملتين — Playwright وPatchright — ويُظهر سجل التثبيت أيضًا أنه يسحب Chrome for Testing وFFmpeg وHeadless Shell فوق ذلك. هذه هي تكلفة أداة تعتمد على متصفح حقيقي: المتصفحات يجب أن تُخزّن في مكان ما، وهنا تُخزّن على جهازك، مرتين. إذا كنت على حاسوب محمول بسعة SSD محدودة، أو تبني صورة حاوية صغيرة تُحاسَب فيها على كل ميغابايت، فضع ذلك في الحسبان. هذا ليس حجم أداة محلل HTML عبر HTTP، ولن يكون كذلك أبدًا.

ومن باب الإنصاف، الأدوات نفسها صريحة بشأن صحتها. أمر crawl4ai-doctor عمل ونجح، ثم زحف إلى https://crawl4ai.com خلال 14.65 ثانية لإثبات أن مسار المتصفح يعمل من البداية إلى النهاية. وجود أمر تشخيص مدمج يعرض صفحة حيّة فعلًا لمسة لطيفة — لأنه يجعل سؤال "هل نجح التثبيت؟" يملك جوابًا حقيقيًا لا مجرد هزّة كتف.

إذن خلاصة الإعداد منقسمة: جانب Python سلس ومتسامح، وجانب المتصفح ثقيل. الحقيقتان صحيحتان في الوقت نفسه، ويجب أن تعرفهما قبل الالتزام.

التطبيق العملي: ما الذي صمد، وبأي أرقام فعلية

أنشأت موقعًا محليًا تجريبيًا بمعايير معروفة — منتجات ثابتة، ومنتجات تُعرض عبر JS، ومقال فيه حشو متعمّد، وصفحة 500 معطلة، ورسم روابط صغير — ثم وجهت Crawl4AI إليه وإلى موقعين تجريبيين عامّين. هذه هي النتيجة.

مصفوفة اختبار من خمس صفحات: ثابتة، ديناميكية، مقال، صفحة 500، وزحف عميق

الصفحات الثابتة: نجاح كامل. التجربة الرسمية السريعة على example.com أعادت Markdown خلال 1.81 ثانية. وعلى الكتالوج الثابت المحلي لديّ، حافظ Markdown على جميع أسماء المنتجات المتوقعة 6/6، بينما استخرجت مخططات CSS جميع السجلات 6 بصيغة JSON — الاسم، والفئة، والسعر، والتقييم، ورابط التفاصيل، وكل حقل كان سليمًا. لا مشاكل.

الصفحات الديناميكية: أيضًا نجاح كامل، عندما تطلب ذلك بشكل صحيح. وهذه هي الملاحظة المحورية. على الكتالوج المولّد بـ JS، إضافة wait_for="css:.product-card" إلى إعداد التشغيل أعطتني 8/8 في استرجاع المنتجات سواء في Markdown أو في الاستخراج بالمخطط. وعلى صفحة quotes.toscrape.com/js العامة، عُرضت الاقتباسات المحقونة عبر JavaScript وحُفظت لقطة شاشة صالحة كدليل على أن المتصفح رسم المحتوى فعلًا. كلمة "ديناميكي" هنا ليست شعارًا؛ المتصفح يرسم حقًا. لكن عليك أن تخبره بما ينتظره. إذا تجاهلت wait_for فأنت تلتقط صفحة لم يكتمل بناؤها.

الصفحات الثابتة والديناميكية حققتا استرجاعًا كاملًا مع انتظار صريح

الدفعات المتعددة: تعمل. arun_many() على ستة عناوين منتجات محلية عاد بـ 6/6، كلها استجابات 200، في مرور متزامن واحد. العيّنة صغيرة، لكن مسار التوازي أدى ما وعد به.

حجم Markdown من موقع حقيقي. مقابل الصفحة الرئيسية العامة لموقع Books to Scrape، أنتج Crawl4AI 13,476 حرفًا من Markdown من صفحة حية في استدعاء واحد — وهذا يعطي إحساسًا ملموسًا بكمية النص الجاهز لـ LLM التي يخرجها الزحف الواحد من كتالوج فعلي.

أنتج زحف واحد إلى Books to Scrape 13,476 حرفًا من Markdown

والآن إلى الحواف الخشنة — تلك التي لا تظهر إلا بعد تجاوز المسار المريح.

Markdown الخام واسع بطبيعته. على صفحة المقال التجريبية لديّ، التقط Crawl4AI العنوان وجميع الفقرات 3/3، وأيضًا نص التنقل، وكتلة الروابط ذات الصلة، وسطر اشتراك وهمي، والتذييل. هذا ليس عيبًا؛ بل هذا هو معنى تحويل الصفحة كاملة إلى Markdown. إذا كنت تريد مقالًا نظيفًا فعلًا، فالجواب الموثق هو تفعيل فلتر محتوى — PruningContentFilter يقيّم العقد بحسب كثافة النص مقابل الروابط ويستبعد الحشو، وBM25ContentFilter يوازنها مقابل استعلام. لم أشغّل هذه المرشحات في هذه الجولة، لذلك لن أضع لها رقم نظافة — لكن الفكرة واضحة: Markdown الخام هو الافتراضي العريض، والنظيف يأتي عبر فلتر تختاره. لا تتوقع مخرجات بمستوى تحرير صحفي من المسار دون إعداد.

صفحة 500 قالت كذبة صغيرة. أعطيت Crawl4AI صفحة معطلة عمدًا تُرجع HTTP 500. صحيح أنه أبلغ عن success=false وعن الحالة 500 — لكن رسالة الخطأ قالت: "Blocked by anti-bot protection: Structural: minimal_text on small page." لم يكن هناك أي حظر مضاد للروبوتات. كانت مجرد صفحة خطأ صغيرة جدًا ونصها المرئي شبه معدوم، وخوارزمية البنية في Crawl4AI رأت الصفحة الرقيقة وتمسكت بتصنيف anti-bot. الخلاصة لمن يشغّله على نطاق واسع: لا تثق بصياغة "anti-bot" حرفيًا. راجع رمز الحالة والسياق الفعلي قبل أن تستنتج أن الموقع يحاربك. أحيانًا تكون الصفحة فقط صغيرة.

تم تصنيف صفحة 500 مقصودة بشكل خاطئ على أنها 'حماية anti-bot' بواسطة الخوارزمية الهيكلية

الزحف العميق لا يرث أوامر الانتظار الخاصة بك. وهذه هي النتيجة التي كنت أود معرفتها قبل ربط زحف كامل. زحف مباشر على الصفحة الديناميكية لديّ مع wait_for نجح تمامًا — 8/8. لكن عندما تركت زاحف BFS العميق يكتشف الروابط من الصفحة الرئيسية ويتبعها، وجد 5 صفحات، نجح في 3، وفشل في 2. أحد الإخفاقات كان تلك الصفحة الديناميكية نفسها — التي تعمل جيدًا عند وجود انتظار صريح. في الزحف العميق رأى 45 حرفًا فقط من النص قبل العرض، وقرر أن الصفحة أرق من اللازم، ثم انسحب مع رسالة "anti-bot" المضللة نفسها قبل أن يكتمل JavaScript.

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

الإيجابيات والسلبيات، بلا مواربة

أين يستحق النجوم التي حصل عليها:

  • مكتبة واحدة تغطي مساحة كبيرة: Markdown مُعرّف، واستخراج JSON منظم، ولقطات شاشة، وزحف دفعي، وزحف عميق، من دون لصق أربع أدوات معًا.
  • الاستخراج من الصفحات الثابتة متين جدًا — 6/6 في استرجاع Markdown و6/6 في السجلات المنظمة في اختباراتي، بسرعة ومن دون فقد.
  • العرض الديناميكي يعمل فعلًا لأن هناك متصفحًا حقيقيًا يقوم بالعرض — 8/8 مع انتظار صريح، وتم التحقق منه بلقطة شاشة.
  • رخصة Apache-2.0، وهي ملائمة للاستخدام التجاري، والمشروع ما يزال يُطلق تحديثات بانتظام (v0.9.0) مع مجتمع كبير خلفه.
  • أمر مدمج crawl4ai-doctor يعرض صفحة حقيقية للتأكد من أن التثبيت يعمل فعلًا.

أين يكلّفك:

  • إعداد أولي ثقيل: حزمتا متصفح بالإضافة إلى FFmpeg وHeadless Shell على القرص. عبء حقيقي على الأجهزة المحدودة.
  • Markdown الخام يتضمن الحشو ما لم تُفعّل فلتر محتوى — المسار النظيف خطوة مقصودة، لا الإعداد الافتراضي.
  • الزحف العميق لن يطبّق تلقائيًا أوامر الانتظار الخاصة بالصفحات الديناميكية؛ صفحات JS التي يكتشفها أثناء الزحف قد تفشل من دون إعداد إضافي.
  • رسائل الخطأ قد تكون مضللة — صفحة 500 رقيقة ظهرت وكأنها "حماية anti-bot" رغم عدم وجود أي حظر.
  • لا توجد محددات ذاتية الإصلاح. مخطط CSS/XPath ثابت، وأنت مسؤول عن تحديثه عندما يتغير الـ markup.

من ينبغي أن يستخدم Crawl4AI، ومن الأفضل أن يمرّ عنه

استخدمه إذا كنت مطورًا تبني خط أنابيب RAG أو agent وتريد أداة واحدة تعطيك Markdown جاهزًا للنماذج وJSON منظمًا من الصفحة نفسها بعد عرضها. إذا كانت وجهاتك تعتمد بكثافة على JavaScript، ولا تمانع كتابة أوامر انتظار صريحة، وترتاح لتشغيل متصفح headless حقيقي على بنيتك التحتية، فإن Crawl4AI خيار قوي ومصان جيدًا. الجمع بين Markdown للنموذج ومخطط للقاعدة، داخل مكتبة Apache-2.0 واحدة، مريح فعلًا.

تجاوزه إذا كنت تريد محلل HTTP خفيفًا جدًا يلتقط HTML الثابت خلال مليّات ثانية من دون متصفح — فـ Crawl4AI أثقل من ذلك عمدًا، وتحميل المتصفحات وحده قد يزعجك. تجاوزه إذا كان القرص أو النطاق الترددي لديك محدودًا، أو كنت تنشر إلى حاوية صغيرة يكون فيها وجود حزمتين من المتصفحات أمرًا غير مقبول. وبالتأكيد تجاوزه إذا كنت تبحث عن محددات ذاتية الإصلاح — هذه ميزة حقيقية، لكنها ليست ميزة هذه الأداة.

أين تناسب الواجهة المُدارة — زاوية Thunderbit

جرّب Thunderbit لاستخراج بيانات الويب

كل ما سبق يفترض أنك تريد تشغيل المتصفح بنفسك. وهذا خيار مشروع، ولدى كثير من الفرق هو الخيار الصحيح — تحكم كامل، ولا تكلفة لكل استدعاء، وكود تملكه من البداية للنهاية. لكن من المهم تسمية المقايضة التي تدخل فيها، لأننا في Thunderbit بنينا طبقتنا للمطورين على المقايضة المعاكسة: نُبقي المتصفح ومعالجة الحماية من الحظر وعرض JavaScript خارج جهازك بالكامل.

والتشابه هنا كافٍ للمقارنة بوضوح. نقطة النهاية POST /distill لدينا تقوم بما يفعله مسار Markdown في Crawl4AI — صفحة تدخل، وMarkdown نظيف جاهز لـ LLM يخرج — إلا أن عرض JS وطبقة الحماية من الحظر يعملان من جهتنا، لا على متصفح ثبّتَّه أنت. ونقطة النهاية POST /extract تغطي الجانب المنظم، فتُرجع JSON وفق مخطط تحدده، مع مفتاح renderMode (none, basic, full) بدل wait_for الذي تضبطه يدويًا. وكلاهما يملك نسخًا دفعيّة. وهناك أيضًا خادم MCPthunderbit_distill وthunderbit_extract وthunderbit_suggest_fields المجاني — بحيث يمكن لوكيل داخل Claude أو Cursor استدعاؤه مباشرة، بالإضافة إلى npx @thunderbit/thunderbit-cli للاستخدام من الطرفية وCI والمهام المجدولة.

الخلاصة هنا: من يحمل العبء؟ Crawl4AI مجاني ومفتوح المصدر ومُستضاف ذاتيًا، لكنك أنت من تتحمل العبء التشغيلي — تنزيل المتصفحات، وربط الزحف العميق، والجهاز الذي يعمل عليه كل ذلك. أما طبقتنا للمطورين فهي واجهة مُدارة، يتحمل فيها الطرف الآخر هذا العبء، وتنتقل الكلفة إلى الاستخدام لكل استدعاء. لا أحد أفضل على الإطلاق. إذا أردت التحكم في كل طبقة وعدم دفع شيء لكل طلب، فشغّل Crawl4AI. وإذا أردت حذف عبء تشغيل المتصفح والاعتماد على نقطة نهاية، فهذا هو الطريق المُدار. المحرك نفسه الذي يشغّل الإضافة لدينا ذات أكثر من 100,000 مستخدم يقف خلف الـ API، لذا فهذه ليست طبقة تجريبية.

إذا كنت تفكر في الفئة الأوسع، فكتاباتنا عن AI web scraping وأدوات GitHub مفتوحة المصدر التي اختبرناها وجهًا لوجه تتعمق أكثر مما أستطيع هنا من دون تحويل المقال إلى شيء آخر.

الحكم النهائي: هل ينبغي أن تستخدم Crawl4AI؟

نعم — إذا كنت مطورًا يريد Markdown جاهزًا لـ LLM وJSON منظمًا من الصفحة نفسها بعد عرضها، وتبني من أجل RAG أو الوكلاء، وتقبل بوجود متصفح headless حقيقي على بنيتك التحتية. في اختباراتي فعل الجوهر ما يعد به تمامًا: 6/6 في الاستخراج من الصفحات الثابتة، و8/8 في الصفحات الديناميكية مع انتظار صريح، و13,476 حرفًا من Markdown من كتالوج حي، وزحف دفعي نظيف. هذه أداة قوية، جيدة الترخيص، ومصانة بنشاط، وتنجز عملًا حقيقيًا.

لكن ادخل بوعي بثلاث نقاط، وستكون بخير: الإعداد يضع حزمتَي متصفح على قرصك، والزحف العميق لن ينتظر تلقائيًا الصفحات الديناميكية التي يكتشفها، وصفحة خطأ رقيقة قد ترتدي ملصق "anti-bot" مضللًا. ولا واحدة من هذه نقاط كسر حقيقي. لكنها جميعًا الفرق بين توقع المعجزات وبين استخدام الأداة كما هي — وهي، مرة أخرى، متصفح ومحوّل Markdown ومحددات أنت من يديرها. إذا فهمتها بهذا الشكل، فهي من أفضل الطرق لتحويل الصفحات الحية إلى نص يمكن للنموذج استخدامه.

هذه قراءة أولية من جولة اختبار واحدة. لم أرهقه بزحف ألف صفحة، ولم أشغّل مرشحات المحتوى، ولم ألمس مسار استخراج LLM أو وضع خادم Docker. لذا اعتبر التقييم في ذهني "قوي، مع بقاء واجب منزلي" لا علامة نهائية — وتحقق مرة أخرى من عدد النجوم والإصدار قبل أن تنقل أيًا من البيانات الوصفية، لأن كليهما يتغير.

جرّب Thunderbit لاستخراج بيانات الويب Get Started Free

الأسئلة الشائعة

هل لدى Crawl4AI محددات ذاتية الإصلاح أو تكيفية؟ لا. هذه أكثر فكرة خاطئة شائعة عنه. يستخدم Crawl4AI مخططات CSS/XPath ثابتة تكتبها وتديرها أنت — فإذا غيّر موقعٌ ما أسماء الفئات التي تعتمد عليها محدداتك، سيتعطل الاستخراج حتى تصلح المخطط. المحددات التكيفية التي تعيد تموضع نفسها هي ميزة أداة مختلفة (Scrapling)، وليست Crawl4AI.

هل أحتاج إلى متصفح كامل لتشغيل Crawl4AI؟ عم عمليًا. القيمة الأساسية فيه هي عرض JavaScript عبر متصفح حقيقي، لذا فإن crawl4ai-setup ينزّل حزمتين من المتصفحات (Playwright وPatchright) بالإضافة إلى FFmpeg وHeadless Shell. إذا كنت تريد محللًا صغيرًا يعمل عبر HTTP فقط من دون أي أثر لمتصفح، فـ Crawl4AI ليس الشكل المناسب، وستحتاج إطار عمل أخف.

لماذا قال Crawl4AI "anti-bot protection" على صفحة لم تكن محجوبة؟ الاستدلال البنيوي لديه يضع علامات على الصفحات التي تحتوي على نص مرئي قليل جدًا، والرسالة التي يصدرها تذكر الحماية من الروبوتات. في اختباري، صفحة HTTP 500 مقصودة ولا تحتوي تقريبًا على أي محتوى حصلت على هذه التسمية رغم عدم وجود أي حظر حقيقي. افحص دائمًا رمز الحالة والسياق الفعلي قبل أن تستنتج أن الموقع يقاومك — أحيانًا تكون الصفحة فقط رقيقة أو معطلة.

هل يتعامل الزحف العميق في Crawl4AI مع صفحات JavaScript تلقائيًا؟ ليس وحده. الزحف المباشر مع wait_for صريح تعامل مع الصفحة الديناميكية لديّ بنجاح 8/8، لكن الزحف العميق BFS الذي اكتشف الصفحة نفسها فشل معها — 5 صفحات مكتشفة، 3 ناجحة، 2 فاشلة — لأنه لم ينتظر حتى يكتمل عرض JavaScript قبل أن يحكم بأن الصفحة رقيقة جدًا. إذا كان الزحف العميق لديك بحاجة إلى تغطية صفحات ديناميكية، فعليك ضبط الانتظار بشكل صريح.

بمَ يختلف Crawl4AI عن واجهة scraping مُدارة مثل Thunderbit؟ Crawl4AI مجاني ومفتوح المصدر ومُستضاف ذاتيًا — أنت من يشغّل المتصفح والبنية التحتية ويصونهما، من دون كلفة لكل استدعاء. أما طبقة المطورين في Thunderbit (/distill لـ Markdown، و/extract لـ JSON المنظم، بالإضافة إلى MCP وCLI) فهي واجهة مُدارة، حيث يعمل العرض ومعالجة الحماية من الحظر وتشغيل المتصفح من جهتنا، وتدفع مقابل الاستخدام لكل استدعاء. المقايضة هي بين التحكم الكامل وعدم الدفع لكل طلب، وبين نقل العبء التشغيلي إلى الخارج.

Ke
Ke
المدير التقني في Thunderbit | عالم بيانات أول وخبير في تعلّم الآلة بخبرة تقارب عقدًا من الزمن في تعلّم الآلة وعلم البيانات، كيه شين خريج جامعة كولومبيا وكان سابقًا عالم بيانات أول في Walmart Labs. وبفضل خبرته العميقة المعترف بها من قبل الأقران في Python وR وJava والإحصاء، يشارك رؤى مجرّبة حول نقل خوارزميات الذكاء الاصطناعي المعقدة من النظرية إلى بنية جاهزة للإنتاج.

جرّب Thunderbit

استخرج العملاء المحتملين وبيانات أخرى في خطوتين فقط. مدعوم بالذكاء الاصطناعي.

احصل على Thunderbit مجاني
استخرج البيانات باستخدام الذكاء الاصطناعي
انقل البيانات بسهولة إلى Google Sheets أو Airtable أو Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week