In this Article
يُعد Selenium بمفرده أداة ممتازة لأتمتة الويب، لكن دمجه مع بروكسي يحافظ على خصوصيتك ويضمن اتصالاً مستقراً ويتيح لك الاستمتاع بالمحتوى من دون انقطاع. وببساطة، هو أداة مفتوحة المصدر طوّرها Jason Huggins وتُستخدم لأتمتة تطبيقات الويب أو اختبارها. ويتضمن وحدات مثل Selenium IDE وGrid وStandalone Server وWebDriver.
في هذا الدليل، سنأخذك عبر الخطوات الأساسية لإعداد Selenium مع بروكسي في Python لمهام تجريف الويب.
البدء
أولاً، تأكد من تثبيت Python وpip (Python Package Manager). وإن لم يكونا مثبّتَين، فحمّل Python من الموقع الرسمي وافتح ملف .pkg الذي حمّلته، ثم اتبع التعليمات. لنلقِ نظرة على الخطوات الأساسية:
1. افتح Terminal أو Command Prompt. إذا كنت تستخدم Mac، فانقر على أيقونة Launchpad في Dock، واكتب Terminal في حقل البحث، ثم انقر على Terminal. وإذا كنت تستخدم Windows، فاكتب cmd في نافذة Run. سيفتح هذا الاختصار نافذة Command Prompt أو PowerShell.
2. اكتب في الطرفية:
python --version
إذا كان إصدارك هو Python 3، فأضف فقط 3 بعد python. وقد ينطبق ذلك على أوامر أخرى أيضاً:
python3 --version
pip يُثبَّت عادةً تلقائياً مع Python 3.4+. لكن من الأفضل التحقق مما إذا كان pip مثبّتاً بكتابة:
pip --version
pip3 --version
3. استخدم pip to حزمة Selenium:
pip install selenium
إذا كنت تستخدم Python 3، فحاول استخدام pip3 للتأكد من تثبيته لـ Python 3:
pip3 install selenium
4. تحقّق من اكتمال التثبيت.
بعد التثبيت، يمكنك التحقق من تثبيت Selenium عبر تشغيل:
pip show selenium
استخدام WebDriver مع Selenium
يحتاج Selenium إلى برنامج تشغيل ويب للتفاعل مع متصفحات مثل Chrome وFirefox وغيرها. ستحتاج إلى تنزيل برنامج التشغيل المناسب والتأكد من توفره في PATH الخاص بنظامك. سنعمل باستخدام Chrome، المتصفح المفضل لمعظم مشروعات الأتمتة.
1. انتقل إلى صفحة تنزيلات ChromeDriver الرسمية:
https://developer.chrome.com/docs/chromedriver/downloads
2. اعثر على الرابط المطابق لإصدار Chrome لديك ونزّل ChromeDriver لنظام macOS.
سيكون الملف الذي تنزّله بتنسيق zip. ببساطة، انقر عليه نقراً مزدوجاً لاستخراجه، وستحصل على الملف التنفيذي chromedriver .
لتسهيل الوصول، ينبغي نقل ملف chromedriver إلى دليل مضمَّن في PATH الخاص بنظامك. تشمل الأدلة الشائعة /usr/local/bin or /usr/bin. استخدم هذا الأمر:
sudo mv ~/Downloads/chromedriver /usr/local/bin/
***إذا ظهر لك خطأ “لا يوجد ملف أو دليل بهذا الاسم”، فهذا يعني عادةً أن مسار الملف في أمرك غير صحيح، أو أن الملف غير موجود في الموقع المحدد. تحقّق مجدداً من أنك في الدليل الذي يوجد فيه ملف chromedriver وأن اسم الملف لا يتضمن أي امتدادات أو أخطاء مطبعية.
عند استخدام الأمر mv مع sudo لنقل الملفات إلى أدلة مثل /usr/local/bin، سيطلب منك macOS إدخال كلمة المرور. وهي كلمة مرور حساب المستخدم. اكتبها واضغط Enter. وتذكر أن كلمة المرور لن تظهر على الشاشة أثناء كتابتها، فلن تظهر أي أحرف أو رموز.
للتحقق من تثبيت ChromeDriver بصورة صحيحة، اكتب الأمر التالي في الطرفية:
chromedriver --version/
إنشاء نص Python برمجي أساسي
بعد ذلك، نزّل أي محرر نصوص، مثل VS Code في حالتنا، أو استخدم IDE لإنشاء ملف جديد باسم selenium_test.py.
لإنشاء نص Python برمجي أساسي، نحتاج إلى تثبيت وحدة webdriver-manager module.
- يمكننا تثبيت الحزمة باستخدام pip. شغّل الأمر التالي في الطرفية:
pip install webdriver-manager/
pip install selenium webdriver-manager/
بعد تشغيل الأمر أعلاه، ينبغي أن يعمل النص البرمجي كما هو متوقع:
# pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")
# initialize Chrome driver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the HTML of the target webpage
print(driver.page_source)
# release the resources and close the browser
driver.quit()/
سترى النتيجة التالية:
إعداد بروكسي مجاني في Selenium
في هذا القسم، ستتعرّف إلى كيفية إعداد بروكسي لـ Selenium باستخدام Python وتجربة بروكسيات مجانية. زر موقع الويب هذا https://free-proxy-list.net/ واختر بروكسي مجانياً لاختبارك. في النص البرمجي، ستحتاج إلى تحديد عنوان البروكسي والمنفذ. على سبيل المثال، لنختر هذا البروكسي المجاني:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# define the proxy address and port
proxy = "194.5.25.34:443"
# set Chrome options to run in headless mode using a proxy
options = Options()
options.add_argument("--headless=new")
options.add_argument(f"--proxy-server={proxy}")
# initialize Chrome driver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)
# release the resources and close the browser
driver.quit()/
ستحصل في الطرفية على الاستجابة التالية:
{
“origin”: “194.5.25.34:443”
}
هذا يعني أن Selenium يتنقل إلى الصفحات باستخدام خادم البروكسي. لكن كن حذراً، إذ يمكن أن تكون البروكسيات المجانية بطيئة وتبيع بياناتك.
Selenium Wire
Selenium Wire امتداد قوي لـ Selenium يتيح لك اعتراض حركة المرور الشبكية وتحليلها. ومن خلال مراجعة طلبات HTTP واستجاباته، يمكنك فهم كيفية تفاعل تطبيق ويب مع خادمه على نحو أفضل. لا يعالج برنامج تشغيل Chrome اسم المستخدم وكلمة المرور تلقائياً، لذلك تحتاج إلى إضافة من جهة خارجية مثل Selenium Wire.
لتثبيت Selenium Wire، شغّل هذا الأمر في الطرفية:
pip install blinker==1.7.0 selenium-wire/
pip3 install blinker==1.7.0 selenium-wire/
بروكسيات DataImpulse في Selenium
حان الوقت لاستخدام بروكسيات DataImpulse. بعد تثبيت كل شيء، أصبحنا جاهزين لمتابعة مصادقة البروكسي. في هذه الخطوة، ستحتاج إلى بيانات تسجيل الدخول وكلمة المرور والعنوان والمنفذ المحفوظة في قسم خطتك المختارة في لوحة تحكم DataImpulse. سنستخدم بروكسي سكنياً.
لننتقل إلى النص البرمجي:
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# configure the proxy
proxy_username = ""
proxy_password = ""
proxy_address = "gw.dataimpulse.com"
proxy_port = "823"
# formulate the proxy url with authentication
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_address}:{proxy_port}"
# set selenium-wire options to use the proxy
seleniumwire_options = {
"proxy": {
"http": proxy_url,
"https": proxy_url
},
}
# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")
# initialize the Chrome driver with service, selenium-wire options, and chrome options
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
seleniumwire_options=seleniumwire_options,
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)
# release the resources and close the browser
driver.quit()/
سيبدو الأمر في VS Code كما يلي:
نتيجةً لذلك، ستحصل على استجابة تتضمن قيمة origin الخاصة بك. وهذا يعني أن المصادقة اكتملت بنجاح.
نصائح
- زُر مواقع الويب الرسمية فقط – نزّل جميع البرامج اللازمة من المواقع الرسمية الآمنة.
- تحقّق من التوافق – تحقّق مجدداً من توافق إصدارات Selenium وChromeDriver ومتصفحك معاً.
- حدّث بانتظام – تحقّق بانتظام من Selenium وChromeDriver والأدوات الأخرى للاستفادة من أحدث الميزات.
- أدر معلومات تسجيل الدخول بأمان – احمِ تفاصيل المصادقة وأدرها بطريقة آمنة.
- استخدم البيئات الافتراضية – أنشئ بيئة افتراضية للحفاظ على تنظيم التبعيات ومنع تعارض الحزم.
- معالجة الأخطاء – أضف آليات لمعالجة الأخطاء في نصوصك البرمجية للتعامل مع المشكلات المحتملة عند استخدام البروكسيات أو العمل مع عناصر الويب.
الخلاصة
إذا كنت تفكر في إعداد Selenium، فجرّبه بالتأكيد. إن استخدام بروكسي مع Selenium يشبه إضافة ترس إضافي إلى محركك، فهو يمنحك مزيداً من القوة والتحكم. اتبع تعليماتنا ونصائحنا لدمج جميع الحزم بنجاح من المحاولة الأولى. وتذكر أن اختيار بروكسيات موثوقة أفضل من المجانية للاستمتاع بسرعة وأمان واستقرار أكبر.









