عکس های پروفایل اینستاگرام بسیار کوچک هستند. در اینجا نحوه دانلود تصویر نمایه با پایتون و مشاهده آن با وضوح کامل آورده شده است.
عکس پروفایل یکی از عناصر اصلی هر حساب رسانه اجتماعی است، اما برنامه هایی مانند اینستاگرام به شما اجازه مشاهده یا دانلود آن را نمی دهند. این فرآیند را می توان به راحتی با استفاده از ابزار اتوماسیون وب مانند سلنیوم با پایتون به دست آورد.
یاد بگیرید که از این دوتایی قدرتمند برای تعامل با هر عنصر یک صفحه وب، خودکار کردن آن، و صرفه جویی در وقت ارزشمند خود برای سرمایه گذاری در کارهای سازنده استفاده کنید. و بهترین بخش؟ این را حتی بدون لاگین کردن یا داشتن اکانت اینستاگرام بسازید.!
فرآیند ساخت الگوریتم
الگوریتم سازی به فرآیند شناسایی مشکل و فهرست کردن مراحلی که برنامه برای خودکارسازی نیاز دارد، اشاره دارد. مراحل مختلف مورد نیاز برای دانلود عکس پروفایل عبارتند از:
- نام کاربری یک نمایه را به عنوان ورودی در نظر بگیرید
- گوگل کروم را باز کنید
- به پروفایل اینستاگرام مراجعه کنید
- دانلود عکس پروفایل
این به عنوان الگوریتم بیان مسئله عمل می کند.
درک و نصب ماژول ها و ابزارهای مورد نیاز
این پروژه از ماژول ها و ابزارهای پایتون زیر استفاده می کند.
1. ماژول Urllib
Urllib یک ماژول پایتون است که برای مدیریت URL ها از اینترنت استفاده می شود. شما قصد دارید از این ماژول برای دانلود تصویر نمایه اکانت از آدرس منبع آن استفاده کنید. اگر Urllib در سیستم شما وجود ندارد، می توانید آن را با استفاده از دستور pip install urllib نصب کنید.
2. ماژول زمان
این ماژول، اگرچه اجباری نیست، اما اگر اتصال اینترنت شما کند باشد یا محتویات صفحه وب در طول زمان تعامل برنامه پایتون با صفحه وب بارگیری نشود، ممکن است باعث از کار افتادن ساخت شود. تابع delay() به ما کمک می کند تا یک تاخیر کوچک ایجاد کنیم تا بیلد خراب نشود.
3. ماژول سلنیوم
یکی از محبوب ترین ابزارهای اتوماسیون مرورگر منبع باز سلنیوم است. این به عنوان یک بسته پایتون با پشتیبانی از مرورگرهای مختلف مانند Google Chrome، Microsoft Edge، Safari و Mozilla Firefox در دسترس است. برای نصب سلنیوم در محیط پایتون، ترمینال خود را باز کرده و سلنیوم نصب پیپ را اجرا کنید.
4. WebDriver
درایور وب ابزاری است که توسط سلنیوم استفاده می شود و ارتباط بین برنامه و هر وب سایتی را برقرار می کند. انواع مختلفی از درایورهای وب بر اساس مرورگری که می خواهید خودکار کنید در دسترس هستند. برای این ساخت، شما از مرورگر گوگل کروم استفاده می کنید. برای نصب درایور وب برای کروم:
- با مراجعه به منو (3 نقطه) >Help > About Google Chrome، نسخه مرورگر مورد استفاده خود را بررسی کنید.
- به نسخه مرورگر توجه کنید.
- از صفحه دانلودهای ChromeDriver – WebDriver برای Chrome دیدن کنید.
- گزینه ای را انتخاب کنید که با شماره نسخه شما مطابقت دارد از نسخه های فعلی ChromeDriver.
- فایل را با توجه به سیستم عامل خود انتخاب و دانلود کنید.
- فایل دانلود شده را اکسترکت کرده و در همان پوشه برنامه پایتون خود قرار دهید. این برای تعیین مسیر در هنگام کدنویسی مفید خواهد بود.
نحوه بازرسی کد برای خودکارسازی هر جنبه از یک صفحه وب
برای هر فرآیند اتوماسیون وب با استفاده از سلنیوم و پایتون، داشتن درک اولیه از وب و فناوری های آن ضروری است. اولین گام این است که مقدمه ای بر HTML به دست آورید و سپس با درک شیوه نامه های آبشاری (CSS) آشنا شوید. اینجاست که با مفهوم شناسه ها و کلاس ها آشنا می شوید.
شناسه ها و کلاس ها نام های منحصر به فردی هستند که به ترتیب به یک عنصر یا مجموعه ای از عناصر (برچسب ها) داده می شوند. با استفاده از اینها، عنصر مورد نیاز را پیدا میکنید و به برنامه پایتون دستور میدهید که آن را به طور خاص هدف قرار دهد. برای بررسی کد و پیدا کردن عکس پروفایل:
- صفحه وب اکانت اینستاگرام را باز کنید.
- روی منوی مرورگر > ابزارهای بیشتر > ابزارهای برنامه نویس کلیک کنید یا از میانبر Ctrl + Shift + I برای فعال کردن نمای ابزارهای برنامه نویس استفاده کنید.
- روی ابزار Element Picker (نماد مکان نما) در گوشه سمت چپ پنجره کلیک کرده و انتخاب کنید و آن را روی هر قسمت از صفحه وب نگه دارید تا به آن بخش کد بروید.
- توجه به این نکته ضروری است که تصاویر پروفایل یک حساب کاربری عمومی و یک حساب خصوصی متفاوت تنظیم شده اند. نشانگر را روی عکس نمایه یک حساب عمومی ببرید. ویژگی کلاس برای نمایه عمومی _aa8j است.
- مرحله بالا را برای پروفایل خصوصی تکرار کنید. ویژگی کلاس _aadp است.
شما می توانید از این روش برای درک هر صفحه وب و هدف قرار دادن هر عنصری برای اتوماسیون استفاده کنید.
چگونه دانلودر عکس پروفایل اینستاگرام بسازیم
این مراحل را برای ایجاد دانلودر دنبال کنید.
- ماژول های مورد نیاز را به محیط پایتون وارد کنید.from import selenium webdriverimport timeimport urllib.request
- با استفاده از تابع ورودی، نام کاربری پروفایلی که قرار است عکس نمایه آن دانلود شود را بدست آورید و آن را در متغیری به نام username ذخیره کنید. نمایه: “)
- درایور وب را با ایجاد یک شی از آن و عبور از مسیر سیستم فایل آن، مقداردهی اولیه کنید.#creating a object of chromedriver cd=&aposchromedriver.exe&apos
- از تابع webdriver.Chrome برای راه اندازی مرورگر Google Chrome استفاده کنید.#open google chrome browser driver = webdriver.Chrome(cd)
- URL هر حساب اینستاگرام با فرمت https://www.instagram.com/ و سپس نام کاربری است. URL نمایه را به صورت #تنظیم urlurl=&aposhttps://www.instagram.com/&apos url_p=url+user_h تنظیم کنید
- URL کامل نمایه اینستاگرام را برای بازدید به تابع get() ارسال کنید.#open the profile driver.get(url_p)
- یک تاخیر پیشنهادی اختیاری برای بارگیری کامل صفحه وب تنظیم کنید.#delay برای محتوای صفحه loadingtime.sleep(5)
- از بلوک try-except برای مکان یابی و تعیین اینکه آیا عکس نمایه متعلق به یک نمایه عمومی است استفاده کنید. این کار با استفاده از ویژگی class در عبارت XPath انجام می شود. در صورت عدم موفقیت، از بلوک جز برای جستجوی تصویر نمایه یک حساب خصوصی استفاده کنید.try:#اگر نمایه عمومی است، تصویر را با کلاس _aa8jimage=driver.find_element_by_xpath(&apos//img[@class=”_aa8j”] جستجو کنید. &apos)به جز:#اگر نمایه خصوصی است، تصویر را با کلاس _aadpimage=driver.find_element_by_xpath(&apos//img[@class=”_aadp”]&apos جستجو کنید.
- با استفاده از get_attribute()، ویژگی src تصویر را بدست آورید. این پیوند تصویر را برمی گرداند.#ذخیره لینک دانلود تصویر img_link=image.get_attribute(&apossrc&apos)
- مسیر و پسوند فایل دانلود شده را تنظیم کنید. به عنوان مثال، میتوانید تصویر را برای بارگیری در درایو D: فایل سیستم خود با فرمت JPG تنظیم کنید.#set path of file downloaded path=”D:\\”+username+”.jpg”
- تصویر را با ارسال پیوند تصویر نمایه به عنوان منبع و مسیر پوشه سیستم محلی به عنوان مقصد به تابع urlretrieve() دانلود کنید.#دانلود تصویر به مقصد موردنیازurllib.request.urlretrieve(img_link,path)
- به پوشه مراجعه کنید و ببینید که عکس پروفایل دانلود شده است. به صورت اختیاری، میتوانید مسیری که عکس نمایه در آن دانلود شده است را نیز نمایش دهید.
from selenium import webdriver
import time
import urllib.request
#entering the username of the profile whose profile picture is to be downloaded
username=input("Enter the username of the profile: ")
#creating an object of chromedriver
cd=&aposchromedriver.exe&apos
#open google chrome browser
driver = webdriver.Chrome(cd)
#setting the url
url=&aposhttps://www.instagram.com/&apos
url_p=url+user_h
#open the profile
driver.get(url_p)
#delay for page content loading
time.sleep(5)
try:
#if profile is public, search for image with class _aa8j
image=driver.find_element_by_xpath(&apos//img[@class="_aa8j"]&apos)
except:
#if profile is private, search for image with class _aadp
image=driver.find_element_by_xpath(&apos//img[@class="_aadp"]&apos)
#store the download link of image
img_link=image.get_attribute(&apossrc&apos)
#set path of downloaded file
path="D:\\"+username+".jpg"
#downloading image to the required destination
urllib.request.urlretrieve(img_link,path)
#displaying the path of the profile pic downloaded
print("The profile pic has been downloaded at: "+path)
کد منبع نهایی برای دانلود کننده عکس پروفایل اینستاگرام با استفاده از پایتون
با جمع کردن همه اینها، به دست می آورید:
#importing the required modules
from selenium import webdriver
import time
import urllib.request
#entering the username of the profile whose profile picture is to be downloaded
user_h=input("Enter the username of the profile: ")
#setting the url
url=&aposhttps://www.instagram.com/&apos
url_p=url+user_h
#creating object of chromedriver
cd=&aposchromedriver.exe&apos
#open google
driver = webdriver.Chrome(cd)
#open the profile
driver.get(url_p)
#delay for page content loading
time.sleep(5)
try:
#if profile is public, search for image with class _aa8j
image=driver.find_element_by_xpath(&apos//img[@class="_aa8j"]&apos)
except:
#if profile is private, search for image with class _aadp
image=driver.find_element_by_xpath(&apos//img[@class="_aadp"]&apos)
#store the download link of image
img_link=image.get_attribute(&apossrc&apos)
کاربردهای اتوماسیون وب
اتوماسیون نه تنها به شما در صرفه جویی در زمان، پول و تلاش کمک می کند، بلکه تکمیل وظایف را در عین جلوگیری از خطاها تضمین می کند. از این تکنیک برای خودکار کردن ورود به وبسایتهای مختلف، انجام پشتیبانگیری از سرورهای ابری، برنامهریزی پیامها، تبریک تولد در پلتفرمهای رسانههای اجتماعی، ایجاد پست، انتشار توییتها و بسیاری موارد دیگر استفاده کنید.