python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
قرار دادن کدهای تکراری در پروژه‌ها در حالت کلی اتفاقی بد و منفی است و در پروژه مطلب آموزش ساخت ربات اینستاگرام با پایتون به طور ویژه‌ای بدتر محسوب می‌شود. زیرا کد سلنیوم به عناصر «رابط کاربری» (User Interface) وابسته است و عناصر رابط کاربری معمولا زیاد تغییر داده می‌شوند. هنگامی که عناصر رابط کاربری تغییر می‌کنند و نیاز به تغییر و به روز رسانی کد ایجاد می‌شود، بحث Page Object Pattern مطرح می‌شود.
. با این الگو (Pattern)، کلاس‌های شی صفحه (Page Object Classes) برای مهم‌ترین صفحات یا قسمت‌ها (Fragments) ساخته می‌شوند و در واقع رابط‌هایی را شکل می‌دهند که برای برنامه قابل درک است. با در نظر داشتن این موضوع، می‌توان کد بالا را بازنویسی کرد و کلاس‌های HomePage و LoginPage را ساخت.
این کد، عملکردی مشابه کد بالا دارد، با این تفاوت که Home Page و Login Page به صورت کلاس‌ها نمایش داده شده‌اند. کلاس‌ها، مکانیزم‌های لازم برای پیدا کردن داده‌ها در رابط کاربری و دستکاری آن‌ها را کپسوله کرده‌اند. مورد دیگری که باید به آن توجه داشت، آن است که هنگام جا به جایی به صفحه‌ای دیگر با استفاده از یک شی صفحه (Page Object)، این کد، Page Object برای صفحه جدید را باز می‌گرداند. «متدها» (Methods) و «اکسسورهایی» (Accessors) نیز وجود دارند که می‌توانند هر آنچه یک انسان انجام می‌دهد را انجام دهند
باید به مقدار بازگردانده شده توسط go_to_log_in_page()‎ توجه داشت. اگر کلاس دیگری به نام FeedPage وجود داشت، تابع login()‎ از کلاس LoginPage نمونه‌ای از آن را (return FeedPage()‎) باز می‌گرداند. در ادامه، چگونگی استفاده از Page Object Pattern نمایش داده شده است.
اکنون کد بهبود یافته است و تست بالا را می‌توان به صورت زیر بازنویسی کرد.
با تغییرات انجام شده در کدها، حتی در صورتی که تغییراتی در رابطه کاربری برنامه اتفاق بیفتد، دیگر نیازی به تغییر کدهای تست نیست. اکنون که مفهوم و چگونگی کار با سلنیوم (Selenium) و Page Object Pattern تشریح و شفاف شد، می‌توان به آموزش ساخت ربات اینستاگرام با پایتون پرداخت. اما پیش از ارائه آموزش ساخت ربات اینستاگرام با پایتون ابزار اینستاپای (Instapy) به طور اجمالی مورد بررسی قرار خواهد گرفت.
This media is not supported in your browser
VIEW IN TELEGRAM
آشنایی با InstaPy

«اینستاپای» (InstaPy) بزرگ‌ترین و محبوب‌ترین ابزار خودکارسازی موجود برای اینستاگرام به شمار می‌آید که به به صورت رایگان در دسترس است. طیف وسیعی از ویژگی‌ها وجود دارد که منجر شده‌اند اینستا به ابزاری درجه یک برای افزایش تعداد دنبال کنندگان در اینستاگرام مبدل شود. در بخش بعدی، آموزش ساخت ربات اینستاگرام با پایتون و اینستاپای ارائه می‌شود.
آموزش ساخت ربات اینستاگرام با پایتون و InstaPy

در این بخش، آموزش ساخت ربات اینستاگرام با پایتون و ابزار اینستاپای ارائه شده است. این ربات می‌تواند به صورت خودکار لایک بزند، افراد را دنبال و برای پست‌های مختلف نظر درج کند. در این راستا، ابتدا باید اینستاپای را نصب کرد. دستور زیر کار نصب اینستاپای (InstaPy) را انجام می‌دهد.
$ python3 -m pip install instapy
ویژگی‌های اساسی اینستاپای

اکنون، می‌توان کد بالا را با استفاده از InstaPy بازنویسی کرد تا بتوان دو گزینه ممکن را با هم مقایسه کرد. ابتدا باید فایل پایتون دیگری ساخته و قطعه کد زیر در آن وارد شود.
from instapy import InstaPy InstaPy(username="<your_username>", password="<your_password>").login(
در کد بالا، تنها نیاز به جایگذاری نام کاربری و رمز عبور است و پس از آن، همین دو خط کد کاری را انجام می‌دهد که کدهای قبلی انجام می‌دادند. با وجود آنکه نتایج این دو قطعه کد مشابه با یکدیگر است، ساز و کار به وقوع پیوسته در آن‌ها شبیه به هم نیست. علاوه بر وارد شدن به پروفایل، اینستاپای کارهای دیگری مانند بررسی اتصال اینترنت و بررسی وضعیت سرورهای اینستاگرام را انجام می‌دهد. این مورد به طور مستقیم در مرورگر یا در سوابق (Log) قابل مشاهده است.

INFO [2019-12-
INFO [2019-12-17 22:03:19] [username] -- Connection Checklist [1/3] (Internet Connection Status) INFO [2019-12-17 22:03:20] [username] - Internet Connection Status: ok INFO [2019-12-17 22:03:20] [username] - Current IP is "17.283.46.379" and it's from "Germany/DE" INFO [2019-12-17 22:03:20] [username] -- Connection Checklist [2/3] (Instagram Server Status) INFO [2019-12-17 22:03:26] [username] - Instagram WebSite Status: Currently Up