كيفية إعداد بروكسي معتمد في Puppeteer (دليل Node.js)
آخر تحديث:
يتحكم Puppeteer في Chrome و Chromium عبر بروتوكول DevTools (CDP)، ويوفر واجهة برمجة تطبيقات أصلية await page.authenticate({ username, password }) للتعامل مع تحديات مصادقة HTTP 407 للبروكسي. ويتيح إقران خيار --proxy-server=http://ip:port مع page.authenticate() لأدوات كشط البيانات في Node.js التوجيه عبر بروكسيات VinaProxy الثابتة دون الحاجة إلى أي إضافات متصفح خارجية.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40,000 ₫
- 5+ IP35,000 ₫
- 10+ IP25,000 ₫
- 20+ IP25,000 ₫
- 50+ IP25,000 ₫
- 100+ IP25,000 ₫
- 200+ IP25,000 ₫
- 500+ IP25,000 ₫
- 1000+ IP22,000 ₫
- 2000+ IP20,000 ₫
- 1 IP40,000 ₫
- 5+ IP35,000 ₫
- 10+ IP25,000 ₫
- 20+ IP25,000 ₫
- 50+ IP25,000 ₫
- 100+ IP25,000 ₫
- 200+ IP25,000 ₫
- 500+ IP25,000 ₫
- 1000+ IP22,000 ₫
- 2000+ IP20,000 ₫
إعداد البروكسي على خطوتين في Puppeteer
لا تضع إطلاقاً بيانات user:pass@ داخل وسيطة بدء التشغيل --proxy-server. بدلاً من ذلك، مرر المضيف والمنفذ عند بدء التشغيل وقم بالمصادقة على كائن Page:
| الخطوة | كود Puppeteer | الأهمية التقنية |
|---|---|---|
| 1. تشغيل Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | يوجه مقبس شبكة Chromium مباشرة إلى خادم بروكسي VinaProxy الخاص بك |
| 2. توثيق الصفحة | await page.authenticate({ username, password }) | يقدم بيانات الاعتماد عبر CDP للرد على تحديات HTTP 407 |
| 3. الانتقال إلى الرابط | await page.goto(url, { waitUntil: 'domcontentloaded' }) | يحمّل الرابط المطلوب عبر النفق المعتمد والموثق |
تدوير عدة بروكسيات عبر علامات التبويب باستخدام proxy-chain
- تذكر أن نطاق
page.authenticate()يقتصر على علامة تبويبPageواحدة — استدعه على كل علامة تبويب جديدة يتم فتحها بواسطةbrowser.newPage() - لاستخدام بروكسيات مختلفة عبر سياقات التصفح المتخفي داخل عملية Chromium واحدة، غلّف كل عنوان
http://user:pass@ip:portباستخدام حزمة npmproxy-chain(anonymizeProxy()) ومرره إلىbrowser.createBrowserContext({ proxyServer }) - متوافق تماماً مع
puppeteer-extraوحزمة التخفيpuppeteer-extra-plugin-stealth
خطوة بخطوة
- 1
مرر --proxy-server=http://ip:port إلى puppeteer.launch()
شغّل المتصفح باستخدام
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
استدعِ await page.authenticate() على الصفحة الجديدة
افتح علامة تبويب باستخدام
const page = await browser.newPage();واستدعِawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
اختبر عنوان IP الخاص بالخروج
شغّل
await page.goto('https://vinaproxy.com/api/my-ip');وافحص بيانات JSON المُرجعة. - 4
أغلق عمليات المتصفح بأمان
استدعِ
await browser.close();فور اكتمال المهمة لتحرير موارد النظام.
الأسئلة الشائعة
لماذا يعرض Puppeteer الخطأ ERR_NO_SUPPORTED_PROXIES؟
يحدث هذا الخطأ عند كتابة بيانات الاعتماد ضمن وسيطة البدء: --proxy-server=http://user:pass@ip:port. احتفظ فقط بـ --proxy-server=http://ip:port ومرر اسم المستخدم وكلمة المرور عبر await page.authenticate({ username, password }).
لماذا تفشل علامة التبويب الثانية المفتوحة بـ browser.newPage() مع رمز الخطأ HTTP 407؟
يتم تطبيق page.authenticate() لكل علامة تبويب على حدة. يجب استدعاء await secondPage.authenticate({ username, password }) قبل التنقل في أي علامة تبويب جديدة.
هل يتم احتساب استهلاك البيانات في بروكسيات VinaProxy عند كشط الويب بدون واجهة رسومية؟
لا. تشمل جميع خطط IPv4 المخصصة و ISP الثابتة من VinaProxy حركة بيانات غير محدودة شهرياً.
عزز كفاءة أدوات Puppeteer في Node.js بعناوين IP ثابتة ومخصصة
بروكسيات IPv4 مخصصة و ISP ثابتة غير محدودة مع تفعيل فوري في 7 دول حول العالم.
شراء بروكسيات Puppeteer