كيفية إعداد بروكسي موثق في Selenium WebDriver
آخر تحديث:
يتجاهل وسيط ChromeDriver القياسي --proxy-server=http://ip:port بيانات الاعتماد المضمنة user:pass ويتسبب في ظهور نافذة تسجيل دخول منبثقة تعطل الأتمتة. لاستخدام بروكسيات HTTP(S) الموثقة من VinaProxy بسلاسة في Selenium، قم بتمرير بياناتك عبر selenium-wire أو قم بتحميل إضافة Chrome خفيفة تعمل في الخلفية لمعالجة onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 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 IP75,000 ₫
- 3+ IP70,000 ₫
- 5+ IP65,000 ₫
- 10+ IP60,000 ₫
- 50+ IP60,000 ₫
- 100+ IP60,000 ₫
- 200+ IP60,000 ₫
- 500+ IP55,000 ₫
طريقتان موثوقborderتان لمصادقة البروكسي في Selenium
اختر الطريقة المتوافقة مع لغة البرمجة وإعدادات المشغل لديك:
| الطريقة | صيغة الإعداد البرمجية | أفضل استخدام |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | أسرع طريقة في بايثون؛ تتيح تبديل عناوين البروكسي ديناميكياً أثناء الجلسة |
| إضافة Chrome Auth | تحميل إضافة مضغوطة تتولى معالجة حدث chrome.webRequest.onAuthRequired | لإصدارات Selenium القياسية في بايثون، جافا، C# ومع undetected-chromedriver |
| الانتقال إلى Playwright | browser.newContext({ proxy: { server, username, password } }) | دعم أصيل لمصادقة البروكسي على مستوى السياق دون الحاجة لأي إضافات خارجية |
نصائح لتحسين أداء عمليات السحب في Selenium عبر البروكسي
- اضبط
options.page_load_strategy = 'eager'ليبدأ المتصفح بالتفاعل فور جاهزية شجرة DOM دون انتظار أدوات التتبع الخارجية البطيئة - استخدم الوسيط
--headless=new(في Chrome 109+) عند التشغيل في الوضع الخفي لضمان عمل الإضافات ومصادقة البروكسي كما في الوضع المرئي - قم بتعطيل تحميل الصور عبر إعدادات متصفح Chrome عند استخراج البيانات النصية لتوفير استهلاك البيانات وزيادة السرعة
- احرص دائماً على وضع كود المشغل داخل كتلة
try / finally: driver.quit()لتجنب بقاء عمليات Chromium معلقة في ذاكرة النظام
خطوة بخطوة
- 1
تثبيت selenium-wire
نفذ الأمر
pip install selenium-wireفي بيئة بايثون الافتراضية. - 2
تعريف قاموس بروكسي VinaProxy
نسق بياناتك كالتالي:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
تشغيل webdriver.Chrome مع خيار seleniumwire_options
ابدأ تشغيل المشغل:
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
التحقق من عنوان IP الصادر
انتقل إلى الرابط
driver.get('https://vinaproxy.com/api/my-ip')وتأكد من أن استجابة JSON تعرض عنوان IP الخاص بالبروكسي.
الأسئلة الشائعة
لماذا لا يعمل الخيار '--proxy-server=http://user:pass@ip:port' داخل ChromeOptions؟
يقوم محرك Chromium بحذف معلومات user:pass@ عمداً من سطر الأوامر. يمثل استخدام selenium-wire أو إضافة onAuthRequired أو التبديل إلى Playwright حلاً عملياً ونهائياً.
هل يمكنني تغيير عنوان البروكسي دون إعادة تشغيل متصفح Chrome في selenium-wire؟
نعم. يمكنك إسناد قاموس جديد إلى driver.proxy = {'http': 'http://...', 'https': 'http://...'} في أي وقت لتغيير البروكسي فورياً أثناء التشغيل.
هل تعمل إضافات بروكسي Chrome في الوضع الخفي (Headless)؟
نعم، بشرط استخدام الوسيط الحديث --headless=new بدلاً من الوسيط القديم --headless.
شغّل Selenium WebDriver على نطاق واسع مع عناوين IP ثابتة غير محدودة
بروكسيات IPv4 مخصصة وISP سكنية ثابتة وفورية عبر 7 دول.
شراء بروكسيات Selenium