البرمجة

جلب رؤوس الطلبات باستخدام Selenium في Python

في برمجة الويب باستخدام Python ومكتبة Selenium WebDriver، يمكنك بسهولة جلب رؤوس الطلبات باستخدام Selenium بدون الحاجة إلى تشغيل خادم Selenium مستقل.

لفهم كيفية القيام بذلك، يجب أن نتطرق إلى مفهوم Selenium WebDriver وكيفية استخدامه. Selenium WebDriver هو أداة تتيح لك التحكم في المتصفح بشكل برمجي، مما يتيح لك تنفيذ إجراءات مثل فتح الصفحات، إدخال البيانات، والتفاعل مع العناصر على الصفحة. ومن ضمن هذه الإجراءات يمكنك جلب رؤوس الطلبات.

بناءً على الكود الذي قدمته، يمكنك جلب رؤوس الطلبات باستخدام خاصية “capabilities” في Selenium WebDriver. يمكنك تضمين هذه الخاصية في متصفح Chrome للحصول على معلومات الرأس من الطلبات.

في الكود الذي قدمته، يمكنك تعديله ليبدو مثل هذا:

python
from selenium import webdriver # تعيين الخيارات للمتصفح للحصول على رؤوس الطلبات chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--headless") # تشغيل المتصفح بدون واجهة رسومية chrome_options.add_argument("--start-maximized") # تكبير النافذة للحصول على المزيد من المعلومات chrome_options.add_argument("--disable-extensions") # تعطيل الامتدادات للحصول على رؤوس الطلبات بشكل أفضل chrome_options.add_argument("--disable-gpu") # تعطيل محرك المعالجة الرسومية لضمان استجابة أفضل # إنشاء متصفح Chrome مع الخيارات المعطاة driver = webdriver.Chrome(options=chrome_options) # فتح صفحة الويب المطلوبة driver.get('https://login.comcast.net/login?r=comcast.net&s=oauth&continue=https%3A%2F%2Flogin.comcast.net%2Foauth%2Fauthorize%3Fclient_id%3Dxtv-account-selector%26redirect_uri%3Dhttps%3A%2F%2Fxtv-pil.xfinity.com%2Fxtv-authn%2Fxfinity-cb%26response_type%3Dcode%26scope%3Dopenid%2520https%3A%2F%2Flogin.comcast.net%2Fapi%2Flogin%26state%3Dhttps%3A%2F%2Ftv.xfinity.com%2Fpartner-success.html%26prompt%3Dlogin%26response%3D1&reqId=18737431-624b-44cb-adf0-2a85d91bd662&forceAuthn=1&client_id=xtv-account-selector') # جلب رؤوس الطلبات من المتصفح headers = driver.execute_script("return window.performance.getEntries()[0].responseHeaders") # طباعة رؤوس الطلبات print(headers) # إغلاق المتصفح بعد الانتهاء driver.quit()

هذا الكود يقوم بفتح متصفح Chrome بدون واجهة رسومية ويفتح صفحة الويب المعنية. ثم، يستخدم Selenium لجلب رؤوس الطلبات من الصفحة عن طريق تنفيذ JavaScript في النافذة الحالية. وأخيرًا، يطبع الكود رؤوس الطلبات ويغلق المتصفح بعد الانتهاء.

باستخدام هذه الطريقة، يمكنك جلب رؤوس الطلبات بدون الحاجة إلى تشغيل خادم Selenium مستقل، مما يجعل عملية جلب المعلومات أكثر فعالية وسهولة.

المزيد من المعلومات

بالطبع! دعنا نواصل تعزيز المقال بمزيد من التفاصيل والشروحات لضمان فهم أعمق للقراء.

للبداية، دعنا نفهم كيف يعمل الكود الجديد الذي تم توسيعه.

  1. الخيارات لمتصفح Chrome:
    في السطر 5-10، يتم تكوين خيارات المتصفح لضبط سلوكه. تم تضمين خيارات مثل --headless لتشغيل المتصفح بدون واجهة رسومية، --start-maximized لتكبير النافذة للحصول على المزيد من المعلومات، و --disable-extensions و --disable-gpu لضمان استجابة أفضل وتجنب مشاكل الامتدادات ومحرك المعالجة الرسومية.

  2. فتح صفحة الويب المطلوبة:
    في السطر 13، يتم استخدام driver.get() لفتح صفحة الويب المعنية التي تحتوي على الرؤوس التي تريد استخراجها.

  3. جلب رؤوس الطلبات:
    في السطر 16، يتم استخدام driver.execute_script() لتنفيذ JavaScript في نطاق الصفحة الحالي. يتم استخدام window.performance.getEntries()[0].responseHeaders للوصول إلى معلومات الرأس لأول طلب. هذا يعود بناءً على أن الطلبات الأولى هي عادةً طلب الصفحة الرئيسية.

  4. طباعة رؤوس الطلبات:
    في السطر 19، يتم طباعة رؤوس الطلبات التي تم جلبها من الصفحة.

  5. إغلاق المتصفح:
    في السطر 22، يتم استدعاء driver.quit() لإغلاق المتصفح بمجرد الانتهاء من استخدامه.

هذه الطريقة تعتمد على استخدام Selenium WebDriver لتنفيذ JavaScript في نطاق الصفحة للوصول إلى معلومات الرأس، وهي طريقة فعالة وسهلة للحصول على هذه المعلومات بدون الحاجة إلى تشغيل خادم Selenium مستقل.

من المهم أيضًا التنويه بأنه يمكن تعديل الكود لجلب معلومات الرأس لطلبات أخرى، مثل الطلبات AJAX أو أي طلبات تم تنفيذها بعد التحميل الأولي للصفحة. يمكن ذلك بتعديل الفهرس [0] في window.performance.getEntries()[0] لاختيار الطلب المناسب.

بهذا الشكل، يمكنك الآن جلب رؤوس الطلبات بسهولة وفعالية باستخدام Selenium WebDriver في Python دون الحاجة إلى تعقيدات إضافية مثل تشغيل خادم Selenium مستقل.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر