يعتمد أكثر من 70% من مواقع الويب الحديثة على JavaScript لعرض محتواها. لا يرى طلب HTTP القياسي سوى هيكل HTML الأولي. يتم تحميل البيانات الفعلية بعد تنفيذ JavaScript، ولهذا السبب تُرجع أدوات scraping التقليدية صفحات فارغة.
تحل مهام متصفح FourA هذه المشكلة عن طريق تشغيل مثيل Chrome headless حقيقي لكل طلب.
آلية العمل
عند إرسال مهمة باستخدام type: "browser"، تقوم FourA بالتالي:
- تشغيل متصفح Chrome headless
- الانتقال إلى URL المستهدف
- الانتظار حتى يتم تنفيذ JavaScript واستقرار DOM
- انتظار ظهور محدد CSS معين اختياريا
- إرجاع كود HTML المعروض بالكامل
تتم العملية بأكملها على بنية FourA التحتية. تستلم كود HTML نظيفا دون الحاجة إلى تثبيت أي متصفح، أو ضبط إعدادات Puppeteer، أو إدارة تحديثات Chrome.
متى تستخدم مهام المتصفح
استخدم مهام المتصفح مع:
- تطبيقات الصفحة الواحدة (React و Vue و Angular)
- الصفحات ذات المحتوى الذي يتم تحميله تدريجيا (التمرير اللانهائي، أزرار "تحميل المزيد")
- المواقع التي تتطلب موافقة على ملفات تعريف الارتباط أو تهيئة أولية عبر JS
- المحتوى المحمي بمسارات مصادقة من جانب العميل
اعتمد على مهام single مع:
- صفحات HTML المعروضة على الخادم (مواقع الأخبار، المدونات، مواقع الويكي)
- واجهات برمجة تطبيقات REST التي تُرجع JSON مباشرة
- عندما تكون السرعة هي الأولوية (تستغرق مهام المتصفح من 2 إلى 10 ثوانٍ مقابل أقل من ثانية واحدة للمهام الفردية)
مثال: استخراج البيانات من تطبيق React
curl -X POST https://eu.api.foura.ai/api/v1/tasks \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/dashboard",
"type": "browser",
"options": {
"waitFor": ".dashboard-content",
"timeout": 15000
}
}'
يحدد waitFor لـ FourA الانتظار حتى يظهر .dashboard-content في DOM قبل التقاط الصفحة. يضمن ذلك تحميل كافة البيانات غير المتزامنة.
نصائح لتحسين الأداء
- استخدم دائما
waitForمع محدد معين بدلا من الاعتماد على فترات الانتظار. هذا الخيار أسرع وأكثر موثوقية. - عيّن مهلة زمنية معقولة. تغطي 15 ثانية معظم تطبيقات SPA. لا تزد المدة إلا مع الخوادم البطيئة جدا.
- اجعل
singleخيارك الافتراضي ولا تنتقل إلىbrowserإلا عندما يكون المحتوى مفقودا من الاستجابة.
الخطوات القادمة
نعمل على ميزات إضافية للمتصفح تشمل التقاط لقطات الشاشة، وتوليد ملفات PDF، والتنقل متعدد الخطوات (النقر، والتمرير، وملء النماذج). ولكن حتى بدون هذه الإضافات، تعالج مهام المتصفح بالفعل المشكلة الأكثر شيوعا: الحصول على المحتوى الفعلي من الصفحات المعروضة عبر JavaScript بدلا من هيكل فارغ.
راجع التوثيق للاطلاع على مقارنة كاملة لأنواع المهام.