Python اخفاء المتصفح في selenium

تم تحميل الصفحة في 1,5831243 ثانية
اخفاء المتصفح في selenium

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
السلام عليكم ورحمة الله وبركاته

اخفاء المتصفح من خلال استخدام مكتبة selenium

قمت بتجربت جميع الـ webdriver الخاصه بالمتصفحات .

ولكن الافضل استخدام متصفح FireFox مع الـ geckodriver الخاص به .


اولآ يجب ان يكون متصفح FireFox مثبت بجهازك وايضآ الـ geckodriver

تحميل الفايرفوكس :

نزِّل فَيَرفُكس — مُتصفّح ويب مجاني


تحميل الـ geckodriver :

mozilla/geckodriver



قم بتثبيت متصفح الفايرفوكس اولآ ثم قم بتحميل الـ geckodriver وفك الضغط عنه وانقل الـ geckodriver.exe الى مجلد مشروعك .



الآن نكتب هذا الكود بهذي الطريقه :

مثال نريد ان نتعامل مع تويتر

Python:
from selenium import webdriver

class Twitter(object):
    bot,option = '',''

    def __init__(self):
        self.option = webdriver.FirefoxOptions()
        self.option.add_argument('--headless')
        self.option.add_argument('--disable-gpu')
        self.bot = webdriver.Firefox(executable_path=r'geckodriver.exe',options=self.option)


    def login(self):
        try:
            self.bot.get('https://twitter.com/')
            print(self.bot.title)
        except:
            print('Error')


if __name__ == '__main__':
    twitter = Twitter()
    twitter.login()
قم بتشغيل الكود

بعد تشغيل الكود سيتم طباعة : تويتر، هذا ما يحدث.

--

بمعنى اننا وصلنا الى صفحة تويتر وطبعنا الـ title الخاص بموقعهم من غير اظهار المتصفح امامك

--

الدوال الخاصه بأخفاء المتصفح في الكود المذكور بالاعلى هيا :

Python:
self.option = webdriver.FirefoxOptions()
        self.option.add_argument('--headless')
        self.option.add_argument('--disable-gpu')
---

راح يقول شخص شالفايده من الكود .؟

الفائده تستطيع عمل برامج لجلب وارسال البيانات من والى تويتر او انستقرام او الفيس بوك من خلال واجهة برنامج تقوم بتصميمها انت بدون فتح المتصفح امامك
من خلال مكتبة الـ selenium وبدون ان يتم حظر حسابك .



يعني بالعربي لن تحتاج الى شخص اخر يقوم بعمل برنامج خاص بك .


اتمنى الاستفاده من هذا الكود البسيط وتطويره للافضل .


مثلآ : استخدام PyQt5 وتصميم واجهه لمشروعك والتعامل مع الجلب والارسال .

بالتوفيق للجميع
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
4,089
الإعجابات
4,921
النقاط
223
الإقامة
القاهرة
جزاك الله كل خير أخى عبدلله...
دائما استعمل هذه الطريقة فى برامجى التى أقوم بها
وبالفعل طريقة جميلة


C#:
options.AddArgument("--headless")
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
جزاك الله كل خير أخى عبدلله...
دائما استعمل هذا فى برامجى التى أقوم بها
options.AddArgument("--headless")
العفو اخي العزيز ابو روضه ماهيا الطريقه للتعامل مع تعليق الواجهه من خلال الـ thread في لغة الـ vb.net ام لا تستخدم واجهة .

حبذا لو تضع لنا كيفية التعامل مع الـ thread وتقليل التعليق فيما يخص الواجهه حتى يسهل على الاعضاء عمل مشاريع لهم .
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
4,089
الإعجابات
4,921
النقاط
223
الإقامة
القاهرة
العفو اخي العزيز ابو روضه ماهيا الطريقه للتعامل مع تعليق الواجهه من خلال الـ thread في لغة الـ vb.net ام لا تستخدم واجهة .

حبذا لو تضع لنا كيفية التعامل مع الـ thread وتقليل التعليق فيما يخص الواجهه حتى يسهل على الاعضاء عمل مشاريع لهم .
بضع الكود داخل أداه background worker فيصبح البرنامج سلس دون أى تعليق
وقد قمت باالأجابة لكذا عضو هنا على الطريقة لكن لا أتذكر مكان المشاركة
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
بضع الكود داخل أداه background worker فيصبح البرنامج سلس دون أى تعليق
وقد قمت باالأجابة لكذا عضو هنا على الطريقة لكن لا أتذكر مكان المشاركة

تقصد لا يحتاج جلب دوال اخرى سوى الـ thread وادخال الواجهه في امر الـ thread

بمعنى انا في البايثون استخدم فقط هذا


كود:
threading.Thread(target='here' args=(10,))
threading.start()
threading.join()
اعتقد نفس الفكره
 

ابو روضة

.:: إداري النقطة العامة ::.
rankrankrankrankrankrank
إنضم
28 أكتوبر 2012
المشاركات
4,089
الإعجابات
4,921
النقاط
223
الإقامة
القاهرة
تقصد لا يحتاج جلب دوال اخرى سوى الـ thread وادخال الواجهه في امر الـ thread

بمعنى انا في البايثون استخدم فقط هذا

كود:
threading.Thread(target='here' args=(10,))
threading.start()
threading.join()
اعتقد نفس الفكره
نعم نفس الفكرة لكن الثريد يجعل البرنامج يتجمد فبستبدله بالأ
Await Task.Delay(2000)
فهذه تجعل البرنامج لا يتوقف.
بأمر الله هابقى أحاول أشرحها قريب
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
نعم نفس الفكرة لكن الثريد يجعل البرنامج يتجمد فبستبدله بالأ
Await Task.Delay(2000)
فهذه تجعل البرنامج لا يتوقف.
بأمر الله هابقى أحاول أشرحها قريب
ياريت لو تشرح الطريقه لانها مهمه للكثير خاصه من يتعامل مع اكثر من طلب بارك الله فيك اخي ابو روضه
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
حتى يصبح للموضوع فائده اكثر .

طبعآ انا اجعل المشروع مقسم الى class لا اجعله مبعثر وهذا الثريد الذي استخدمه

Python:
def Threads(self):
        self.twistter = Twitter()
        self.thread = threading.Thread(target=self.twistter.login(),args=())
        self.thread.daemon = True
        self.thread.start()
طبعآ انت وطريقتك الخاصه ليس ضروري ان تأخذ خطوات من قبلك طور فيه بما تراه مناسب لك .

انا عليه وضع الاكواد المطلوبه وعليك التطوير والاستفاده .

بالتوفيق للجميع
 
إنضم
13 مايو 2014
المشاركات
3,085
الإعجابات
2,867
النقاط
113
الإقامة
المملكة الاردنية الهاشميه
السلام عليكم ورحمة الله وبركاته

اخفاء المتصفح من خلال استخدام مكتبة selenium

قمت بتجربت جميع الـ webdriver الخاصه بالمتصفحات .

ولكن الافضل استخدام متصفح FireFox مع الـ geckodriver الخاص به .


اولآ يجب ان يكون متصفح FireFox مثبت بجهازك وايضآ الـ geckodriver

تحميل الفايرفوكس :

نزِّل فَيَرفُكس — مُتصفّح ويب مجاني


تحميل الـ geckodriver :

mozilla/geckodriver



قم بتثبيت متصفح الفايرفوكس اولآ ثم قم بتحميل الـ geckodriver وفك الضغط عنه وانقل الـ geckodriver.exe الى مجلد مشروعك .



الآن نكتب هذا الكود بهذي الطريقه :

مثال نريد ان نتعامل مع تويتر

Python:
from selenium import webdriver

class Twitter(object):
    bot,option = '',''

    def __init__(self):
        self.option = webdriver.FirefoxOptions()
        self.option.add_argument('--headless')
        self.option.add_argument('--disable-gpu')
        self.bot = webdriver.Firefox(executable_path=r'geckodriver.exe',options=self.option)


    def login(self):
        try:
            self.bot.get('https://twitter.com/')
            print(self.bot.title)
        except:
            print('Error')


if __name__ == '__main__':
    twitter = Twitter()
    twitter.login()
قم بتشغيل الكود

بعد تشغيل الكود سيتم طباعة : تويتر، هذا ما يحدث.

--

بمعنى اننا وصلنا الى صفحة تويتر وطبعنا الـ title الخاص بموقعهم من غير اظهار المتصفح امامك

--

الدوال الخاصه بأخفاء المتصفح في الكود المذكور بالاعلى هيا :

Python:
self.option = webdriver.FirefoxOptions()
        self.option.add_argument('--headless')
        self.option.add_argument('--disable-gpu')
---

راح يقول شخص شالفايده من الكود .؟

الفائده تستطيع عمل برامج لجلب وارسال البيانات من والى تويتر او انستقرام او الفيس بوك من خلال واجهة برنامج تقوم بتصميمها انت بدون فتح المتصفح امامك
من خلال مكتبة الـ selenium وبدون ان يتم حظر حسابك .



يعني بالعربي لن تحتاج الى شخص اخر يقوم بعمل برنامج خاص بك .


اتمنى الاستفاده من هذا الكود البسيط وتطويره للافضل .


مثلآ : استخدام PyQt5 وتصميم واجهه لمشروعك والتعامل مع الجلب والارسال .

بالتوفيق للجميع
مشكور يا غالي بارك الله فيك اخي الكريم على ما تقدمه
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
إنضم
13 مايو 2014
المشاركات
3,085
الإعجابات
2,867
النقاط
113
الإقامة
المملكة الاردنية الهاشميه

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
شو الاسباب يا غالي
ليكون الواجهات الرسوميه السبب
نعم الواجهه الرسومية للغة بايثون بطيئه وثقيله جدآ

مع انها ابسط واجهه يتعلمها الشخص بكل سهوله .

لكن مشكلتها ثقيله ليست مثل واجهات لغة مايكرسوفت

للعلم ان الواجهه مع استخدامي الـ ++ Qt C اسرع بكثير من الـ PyQt5 و PySide2 مع ان الـ PyQt , PySide موروثه من الـ Qt

هيا يتم فتحها بسرعه لكن كلما زاد الكود كلما اصبح ابطئ ليست مثل واجهات مايكرسوفت ولا حتى الـ Qt

هذا بعض مايحصل معي .

لكن انا متأقلم بـ C++ Qt واحس انها اقرب لي هذي اللغه من باقي اللغات مع صعوبتها لكنني استمتع بالمشاكل حتى اكتشف لها حلول .

الخلاصه : لغة بايثون جميله جدآ لكن مع الواجهات ربما لو كان برنامج اكواده كثيره وطلباته مرتبطه ببعضها البعض يصبر البرنامج ثقيل جدآ .
 
إنضم
13 مايو 2014
المشاركات
3,085
الإعجابات
2,867
النقاط
113
الإقامة
المملكة الاردنية الهاشميه
نعم الواجهه الرسومية للغة بايثون بطيئه وثقيله جدآ

مع انها ابسط واجهه يتعلمها الشخص بكل سهوله .

لكن مشكلتها ثقيله ليست مثل واجهات لغة مايكرسوفت

للعلم ان الواجهه مع استخدامي الـ ++ Qt C اسرع بكثير من الـ PyQt5 و PySide2 مع ان الـ PyQt , PySide موروثه من الـ Qt

هيا يتم فتحها بسرعه لكن كلما زاد الكود كلما اصبح ابطئ ليست مثل واجهات مايكرسوفت ولا حتى الـ Qt

هذا بعض مايحصل معي .

لكن انا متأقلم بـ C++ Qt واحس انها اقرب لي هذي اللغه من باقي اللغات مع صعوبتها لكنني استمتع بالمشاكل حتى اكتشف لها حلول .

الخلاصه : لغة بايثون جميله جدآ لكن مع الواجهات ربما لو كان برنامج اكواده كثيره وطلباته مرتبطه ببعضها البعض يصبر البرنامج ثقيل جدآ .
شوف البايثون رائعه في الويب واكون صريح معك أربعة أشهر ( اساسيات وشبكات وويب) احكيلك اني تاقلمت معها مثل اللغات الأخرى لا والله
لكن الي يعجبني فيها كودها المختصر
شوف اذا السبب فقط الواجهات الرسوميه انا معك وبقوة كمان
اذا في اسباب كمان احكيلنا نتنور
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
شوف البايثون رائعه في الويب واكون صريح معك أربعة أشهر ( اساسيات وشبكات وويب) احكيلك اني تاقلمت معها مثل اللغات الأخرى لا والله
لكن الي يعجبني فيها كودها المختصر
شوف اذا السبب فقط الواجهات الرسوميه انا معك وبقوة كمان
اذا في اسباب كمان احكيلنا نتنور
البايثون لبرمجة الويب من اجمل اللغات وابسطها وافضلها ان لم تكن هناك افضل منها .

هيا ممتعه لبرمجة الويب ومفيده جدآ لختصار الوقت وتجعلك تقوم بعمل كبير لا تقدر عليه اللغات الاخرى الا بجهد وتعب .

لكن للواجهات ليست مرضيه اطلاقآ .

مع ان الـ Qt ابسط من الـ PyQt5

في الـ PyQt5 لابد تعريف متغير وتعريف ميثود والخ .

اما في الـ C++ Qt فقط جلب المكتبه ووضع متغير في الـ h واستخدامه بشكل مباشر في الـ cpp بدون الاشاره اليه بعمل this كما نعمله في self يعني بشكل مباشر

كود:
# header.h
QPushButton *Button;


# header.cpp
setWindowTitle("Welcome back");
Button = new QPushButton("Click Me",this);
طبعآ الـ this في عمل اخذ نسخه من الـ QPushButton ليس المقصود الاشاره للزر بل المقصود وضعه في الـ MainWindow

اراها ابسط من PyQt ولكن التعقيد في التعامل مع لغة الـ ++C

القصه طويله لكن اذا كان استخدامك للبايثون لأجل برمجة الويب فيها افضل بكثير من لغات الويب الاخرى وابسطها .

المشكله في الـ PyQt5 او PySide2 اقوم بعمل تقسيم للمشروع على كلاسات ولكن كلما كان الكود طويل اصبح البرنامج ابطئ
 
إنضم
13 مايو 2014
المشاركات
3,085
الإعجابات
2,867
النقاط
113
الإقامة
المملكة الاردنية الهاشميه
البايثون لبرمجة الويب من اجمل اللغات وابسطها وافضلها ان لم تكن هناك افضل منها .

هيا ممتعه لبرمجة الويب ومفيده جدآ لختصار الوقت وتجعلك تقوم بعمل كبير لا تقدر عليه اللغات الاخرى الا بجهد وتعب .

لكن للواجهات ليست مرضيه اطلاقآ .

مع ان الـ Qt ابسط من الـ PyQt5

في الـ PyQt5 لابد تعريف متغير وتعريف ميثود والخ .

اما في الـ C++ Qt فقط جلب المكتبه ووضع متغير في الـ h واستخدامه بشكل مباشر في الـ cpp بدون الاشاره اليه بعمل this كما نعمله في self يعني بشكل مباشر

كود:
# header.h
QPushButton *Button;


# header.cpp
setWindowTitle("Welcome back");
Button = new QPushButton("Click Me",this);
طبعآ الـ this في عمل اخذ نسخه من الـ QPushButton ليس المقصود الاشاره للزر بل المقصود وضعه في الـ MainWindow

اراها ابسط من PyQt ولكن التعقيد في التعامل مع لغة الـ ++C

القصه طويله لكن اذا كان استخدامك للبايثون لأجل برمجة الويب فيها افضل بكثير من لغات الويب الاخرى وابسطها .

المشكله في الـ PyQt5 او PySide2 اقوم بعمل تقسيم للمشروع على كلاسات ولكن كلما كان الكود طويل اصبح البرنامج ابطئ
شوف انا استخدمها الويب وبصراحه اشوفها اقرب كثير لنظام الكالي لينكس والاختراق المتقدم

شو عجبك بالسي شارب
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
شوف انا استخدمها الويب وبصراحه اشوفها اقرب كثير لنظام الكالي لينكس والاختراق المتقدم

شو عجبك بالسي شارب
بالعكس انا لست معجب بالسي شارب .

برنامج بسيط جدآ بالسي شارب نفرض حساب رقمين لو اردت تحويله الى برنامج قابل للتثبيت اصبح كبير من مضمونه .

لست معجب بها لكنها اكثر لغة مستخدمه بين العرب .

ولكنني متردد الانتقال الى السي شارب ربما استمر في برمجة المواقع افضل .

على العموم سأستمر بالبايثون لعل وعسى مع تطويرها بالمستقبل يجدون طرق افضل للواجهات .
 
إنضم
13 مايو 2014
المشاركات
3,085
الإعجابات
2,867
النقاط
113
الإقامة
المملكة الاردنية الهاشميه
بالعكس انا لست معجب بالسي شارب .

برنامج بسيط جدآ بالسي شارب نفرض حساب رقمين لو اردت تحويله الى برنامج قابل للتثبيت اصبح كبير من مضمونه .

لست معجب بها لكنها اكثر لغة مستخدمه بين العرب .

ولكنني متردد الانتقال الى السي شارب ربما استمر في برمجة المواقع افضل .

على العموم سأستمر بالبايثون لعل وعسى مع تطويرها بالمستقبل يجدون طرق افضل للواجهات .
اسمع يكفي البايثون شغاله على جميع الانظمه
 

عـبـدالـله

.:: مُشرف قسم python ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,062
الإعجابات
2,615
النقاط
198
بارك الله فيك أخى عبد الله على طريقة و شرح المميز
العفو اخي العزيز الشرح التالي للغة السي شارب جاري تحضير الصور .

اهم خطوات وهيا كيفية اضافة المكتبه وكيفية اخفاء المتصفح وكيفية اضافة اداة backgroundWorker لتخطي تعليق الواجهه وكتابة كود بسيط لتسجيل الدخول الى تويتر .

سأقوم بنشره بعد قليل يفيد مبرمجي السي شارب حتى يستطيعون عمل مشاريع لهم .
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 5 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل