تعد صورة الملف الشخصي أحد العناصر الأساسية لأي حساب وسائط اجتماعية ، لكن تطبيقات مثل Instagram لا تسمح لك بمشاهدتها أو تنزيلها. يمكن تحقيق هذه العملية بسهولة باستخدام أداة أتمتة الويب مثل Selenium مع Python.
تعلم كيفية استخدام هذا الثنائي القوي للتفاعل مع أي عنصر من عناصر صفحة الويب ، وجعله آليًا ، ووفر لنفسك وقتًا لا يقدر بثمن من استثماره في المهام الإنتاجية. وأفضل جزء؟ قم ببناء هذا دون حتى تسجيل الدخول أو الحصول على حساب Instagram.!
عملية بناء الخوارزمية
يشير بناء الخوارزمية إلى عملية تحديد المشكلة وسرد الخطوات التي يحتاجها البرنامج لأتمتة. الخطوات المختلفة المطلوبة لتنزيل صورة الملف الشخصي هي:
- خذ اسم مستخدم ملف تعريف كمدخل
- افتح جوجل كروم
- قم بزيارة ملف تعريف Instagram
- قم بتنزيل صورة الملف الشخصي
هذا بمثابة خوارزمية بيان المشكلة.
يستخدم هذا المشروع وحدات وأدوات Python التالية.
1. وحدة Urllib
Urllib هي وحدة Python النمطية المستخدمة للتعامل مع عناوين URL من الإنترنت. ستستخدم هذه الوحدة لتنزيل صورة الملف الشخصي للحساب من عنوان URL المصدر. إذا لم يكن Urllib موجودًا في نظامك ، فيمكنك تثبيته باستخدام الأمر نقطة تثبيت urllib.
2. وحدة الوقت
هذه الوحدة ، رغم أنها ليست إلزامية ، قد تتسبب في فشل البناء إذا كان اتصالك بالإنترنت بطيئًا أو لا يتم تحميل محتويات صفحة الويب أثناء وقت تفاعل برنامج Python مع صفحة ويب. تساعدنا وظيفة التأخير () في وضع تأخير بسيط حتى لا يفشل البناء.
3. وحدة السيلينيوم
يعد السيلينيوم أحد أشهر أدوات أتمتة المستعرضات مفتوحة المصدر. وهي متوفرة كحزمة Python تدعم العديد من المتصفحات مثل Google Chrome و Microsoft Edge و Safari و Mozilla Firefox. لتثبيت السيلينيوم في بيئة بايثون الخاصة بك ، افتح ملف صالة وتنفيذهانقطة تثبيت السيلينيوم.
4. ويب درايفر
برنامج تشغيل الويب هو أداة تستخدمها Selenium لإنشاء اتصال بين البرنامج وأي موقع ويب. أنواع مختلفة من برامج تشغيل الويب متوفرة بناءً على المتصفح الذي تريد تشغيله تلقائيًا. بالنسبة لهذا الإصدار ، ستستخدم متصفح Google Chrome. لتثبيت برنامج تشغيل الويب لمتصفح Chrome:
- تحقق من إصدار المتصفح الذي تستخدمه من خلال زيارة قائمة الطعام (3 نقاط) > مساعدة > حول جوجل كروم.
- لاحظ إصدار المتصفح.
- قم بزيارة صفحة التنزيلات الخاصة بـ ChromeDriver - WebDriver لمتصفح Chrome.
- حدد الخيار الذي يتطابق مع رقم الإصدار الخاص بك من الإصدارات الحالية لبرنامج ChromeDriver.
- اختر وقم بتنزيل الملف وفقًا لنظام التشغيل الخاص بك.
- استخرج الملف الذي تم تنزيله وضعه في نفس المجلد مثل برنامج Python الخاص بك. سيكون هذا مفيدًا في تحديد المسار أثناء الترميز.
كيفية فحص التعليمات البرمجية لأتمتة أي جانب من جوانب صفحة الويب
لأي عملية أتمتة للويب باستخدام السيلينيوم وبايثون ، من الضروري أن يكون لديك فهم أساسي للويب وتقنياتها. الخطوة الأولى هي أن تكسب مقدمة إلى HTML تليها فهم أوراق الأنماط المتتالية (CSS). هذا هو المكان الذي ستتعرف فيه على مفهوم المعرفات والفئات.
المعرفات والفئات هي أسماء فريدة تعطى لعنصر أو مجموعة من العناصر (العلامات) على التوالي. باستخدام هذه ، يمكنك تحديد موقع العنصر المطلوب وإرشاد برنامج Python لاستهدافه على وجه التحديد. لفحص الكود وتحديد صورة الملف الشخصي:
- افتح صفحة الويب الخاصة بحساب Instagram.
- انقر فوق المتصفح قائمة الطعام > أدوات أكثر > ادوات المطورين أو استخدم الاختصار Ctrl + Shift + I لتنشيط ادوات المطورين رأي.
- انقر فوق وحدد ملف منتقي العناصر أداة (رمز مؤشر الماوس) في الزاوية اليسرى من النافذة وقم بتمريرها فوق أي جزء من صفحة الويب للانتقال إلى هذا القسم من التعليمات البرمجية.
- من المهم ملاحظة أنه يتم تعيين صور الملف الشخصي لحساب عام وحساب خاص بشكل مختلف. حرك المؤشر فوق صورة الملف الشخصي لحساب عام. سمة الفئة للملف الشخصي العام هي _aa8j.
- كرر الخطوة أعلاه للحصول على ملف تعريف خاص. صفة الطبقة هي _aadp.
يمكنك استخدام هذا الإجراء لفهم أي صفحة ويب واستهداف أي عنصر للأتمتة.
كيفية بناء Instagram Profile Pic Downloader
اتبع هذه الخطوات لإنشاء برنامج التنزيل.
- قم باستيراد الوحدات المطلوبة إلى بيئة بايثون.
من السيلينيوم يستورد webdriver
يستورد زمن
يستورد طلب urllib - باستخدام وظيفة الإدخال ، احصل على اسم مستخدم الملف الشخصي الذي سيتم تنزيل صورة ملفه الشخصي وتخزينها في متغير يسمى اسم المستخدم.
#entering اسم المستخدم للملف الشخصي الذي سيتم تنزيل صورة ملفه الشخصي
اسم المستخدم = الإدخال ("أدخل اسم المستخدم للملف الشخصي: ") - قم بتهيئة برنامج تشغيل الويب عن طريق إنشاء كائن منه وتمرير مسار نظام الملفات الخاص به.
# إنشاء كائن chromedriver
القرص المضغوط ='chromedriver.exe' - استخدم ال webdriver. كروم وظيفة لتشغيل متصفح جوجل كروم.
# فتح متصفح جوجل كروم
سائق = webdriver. كروم(قرص مضغوط) - عنوان URL لأي حساب Instagram بالتنسيق https://www.instagram.com/ متبوعًا باسم المستخدم. قم بتعيين عنوان URL للملف الشخصي على أنه ،
#setting the url
url ='https://www.instagram.com/'
url_p = url + user_h - قم بتمرير عنوان URL الكامل لملف تعريف Instagram لتتم زيارته إلى وظيفة get ().
# فتح الملف الشخصي
سائق.احصل على(url_p) - قم بتعيين مهلة اختيارية موصى بها لتحميل صفحة الويب بالكامل.
#delay لتحميل محتوى الصفحة
زمن.ينام(5) - استخدم كتلة try-except لتحديد وتحديد ما إذا كانت صورة الملف الشخصي تنتمي إلى ملف تعريف عام. يتم ذلك باستخدام سمة الفئة في تعبير XPath. في حالة الفشل ، استخدم كتلة الاستثناء للبحث في صورة الملف الشخصي لحساب خاص.
محاولة:
#if الملف الشخصي عام ، ابحث عن الصورة مع الفئة _aa8j
image = driver.find_element_by_xpath ('//img[@class="_aa8j"]')
إلا:
#if الملف الشخصي خاص ، ابحث عن الصورة مع class _aadp
image = driver.find_element_by_xpath ('//img[@class="_aadp"]') - باستخدام get_attribute () ، احصل على سمة src الخاصة بالصورة. هذا يعيد ارتباط الصورة.
#store رابط تنزيل الصورة
img_link = image.get_attribute ('src') - حدد مسار وامتداد الملف الذي تم تنزيله. على سبيل المثال ، يمكنك ضبط الصورة المراد تنزيلها على محرك الأقراص D: الخاص بنظام الملفات بتنسيق JPG على هيئة.
# مجموعة مسار الملف الذي تم تنزيله
المسار ="د:\\"+ اسم المستخدم +".jpg" - قم بتنزيل الصورة عن طريق تمرير رابط صورة ملف التعريف كمصدر ومسار مجلد النظام المحلي كوجهة لوظيفة urlretrieve ().
#downloading الصورة إلى الوجهة المطلوبة
أورليب.طلب.urlretrieve(img_link,طريق) - قم بزيارة المجلد وتأكد من تنزيل صورة الملف الشخصي. اختياريًا ، يمكنك أيضًا عرض المسار حيث تم تنزيل صورة الملف الشخصي.
#displaying مسار صورة الملف الشخصي التي تم تنزيلها
مطبعة("تم تنزيل صورة الملف الشخصي على: "+ مسار)
كود المصدر النهائي لبرنامج Instagram Profile Pic Downloader باستخدام Python
بجمعها جميعًا ، تحصل على:
# استيراد الوحدات المطلوبة
من السيلينيوم يستورد webdriver
يستورد زمن
يستورد طلب urllib
#entering اسم المستخدم للملف الشخصي الذي سيتم تنزيل صورة ملفه الشخصي
user_h = المدخلات ("أدخل اسم المستخدم للملف الشخصي: ")
#setting the url
url ='https://www.instagram.com/'
url_p = url + user_h
#creating كائن من chromedriver
القرص المضغوط ='chromedriver.exe'
# فتح جوجل
سائق = webdriver. كروم(قرص مضغوط)
# فتح الملف الشخصي
سائق.احصل على(url_p)
#delay لتحميل محتوى الصفحة
زمن.ينام(5)
محاولة:
#if الملف الشخصي عام ، ابحث عن الصورة مع الفئة _aa8j
image = driver.find_element_by_xpath ('//img[@class="_aa8j"]')
إلا:
#if الملف الشخصي خاص ، ابحث عن الصورة مع class _aadp
image = driver.find_element_by_xpath ('//img[@class="_aadp"]')
#store رابط تنزيل الصورة
img_link = image.get_attribute ('src')
تطبيقات أتمتة الويب
لا تساعدك الأتمتة على توفير الوقت والمال والجهد فحسب ، بل تضمن أيضًا إكمال المهام مع منع الأخطاء. استخدم هذه التقنية لأتمتة تسجيل الدخول إلى مواقع الويب المختلفة ، وإجراء نسخ احتياطي للخوادم السحابية ، وجدولة الرسائل ، وأتمنى أعياد الميلاد على منصات التواصل الاجتماعي ، وإنشاء منشورات ، ونشر التغريدات ، وغير ذلك الكثير.