python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
با تغییرات انجام شده در کدها، حتی در صورتی که تغییراتی در رابطه کاربری برنامه اتفاق بیفتد، دیگر نیازی به تغییر کدهای تست نیست. اکنون که مفهوم و چگونگی کار با سلنیوم (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
اکنون زمان آن رسیده است که اسکریپت نوشته شده برای ربات، کارهایی جالب‌تر از وارد شدن به حساب کاربری فرد را انجام دهد. بدین منظور، فرض می‌شود که حساب کاربری که ربات برای آن ساخته شده، پیرامون خودروها است و بنابراین، ربات تمایل به دنبال کردن و تعامل با کاربرانی دارد که به خودروها علاقه‌مند هستند. در این راستا و برای شروع، ربات می‌تواند با لایک کردن پست‌هایی که دارای تگ bmw‎# یا mercedes‎# هستند شروع کند. بدین منظور، از متد like_by_tags()‎ استفاده می‌شود.
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5)
در اینجا، به متد یک لیست از تگ‌ها و تعداد تصاویری که برای هر تگ باید لایک کنند، داده می‌شود. در این مثال، ربات به گونه‌ای تنظیم شده است که برای هر یک از دو تگ داده شده، پنج پست لایک کند و این یعنی، ربات کلا ۱۰ پست را لایک می‌کند. پس از اجرای کد، آنچه در زیر مشاهده می‌کنید به وقوع خواهد پیوست.
INFO [2019-12-17 22:15:58] [username] Tag [1/2] INFO [2019-12-17 22:15:58] [username] --> b'bmw' INFO [2019-12-17 22:16:07] [username] desired amount: 14 | top posts [disabled]: 9 | possible posts: 43726739 INFO [2019-12-17 22:16:13] [username] Like# [1/14] INFO [2019-12-17 22:16:13] [username] https://www.instagram.com/p/B6MCcGcC3tU/ INFO [2019-12-17 22:16:15] [username] Image from: b'mattyproduction' INFO [2019-12-17 22:16:15] [username] Link: b'https://www.instagram.com/p/B6MCcGcC3tU/' INFO [2019-12-17 22:16:15] [username] Description: b'Mal etwas anderes \xf0\x9f\x91\x80\xe2\x98\xba\xef\xb8\x8f Bald ist das komplette Video auf YouTube zu finden (n\xc3\xa4here Infos werden folgen). Vielen Dank an @patrick_jwki @thehuthlife und @christic_ f\xc3\xbcr das bereitstellen der Autos \xf0\x9f\x94\xa5\xf0\x9f\x98\x8d#carporn#cars#tuning#bagged#bmw#m2#m2competition#focusrs#ford#mk3#e92#m3#panasonic#cinematic#gh5s#dji#roninm#adobe#videography#music#bimmer#fordperformance#night#shooting#' INFO [2019-12-17 22:16:15] [username] Location: b'K\xc3\xb6ln, Germany' INFO [2019-12-17 22:16:51] [username] --> Image Liked! INFO [2019-12-17 22:16:56] [username] --> Not commented INFO [2019-12-17 22:16:57] [username] --> Not following INFO [2019-12-17 22:16:58] [username] Like# [2/14] INFO [2019-12-17 22:16:58] [username] https://www.instagram.com/p/B6MDK1wJ-Kb/ INFO [2019-12-17 22:17:01] [username] Image from: b'davs0' INFO [2019-12-17 22:17:01] [username] Link: b'https://www.instagram.com/p/B6MDK1wJ-Kb/' INFO [2019-12-17 22:17:01] [username] Description: b'Someone said cloud? \xf0\x9f\xa4\x94\xf0\x9f\xa4\xad\xf0\x9f\x98\x88 \xe2\x80\xa2\n\xe2\x80\xa2\n\xe2\x80\xa2\n\xe2\x80\xa2\n#bmw #bmwrepost #bmwm4 #bmwm4gts #f82 #bmwmrepost #bmwmsport #bmwmperformance #bmwmpower #bmwm4cs #austinyellow #davs0 #mpower_official #bmw_world_ua #bimmerworld #bmwfans #bmwfamily #bimmers #bmwpost #ultimatedrivingmachine #bmwgang #m3f80 #m5f90 #m4f82 #bmwmafia #bmwcrew #bmwlifestyle' INFO [2019-12-17 22:17:34] [username] --> Image Liked! INFO [2019-12-17 22:17:37] [username] --> Not commented INFO [2019-12-17 22:17:38] [username] --> Not following

کپی
به طور پیش‌فرض، InstaPy نُه پست اول را به انضمام تعدادی که در amount توسط کاربر برای آن مشخص شده است (در اینجا ۵ برای هر تگ) لایک می‌کند. بنابراین، برای هر تگ به طور کلی ۱۴ پست (۵ + ۹) لایک می‌شود. همچنین، InstaPy هر فعالیتی که انجام می‌دهد را در سوابق (Log) ثبت می‌کند. همانطور که در بالا مشهود است، اینستاپای مشخص می‌کند که ربات کدام پست (Post)، با چه لینکی (Link)، با چه توضیحاتی (Description) و در کدام موقعیت جغرافیایی (Location)  را لایک کرده است. همچنین، اینکه ربات روی پست کامنت گذاشته و یا صاحب حساب کاربری را فالو کرده است را نیز ثبت می‌کند. اکنون، باید ربات را به گونه‌ای تنظیم کرد که محتوای نامناسب را لایک نکند. برای اجتناب از وقوع این موضوع، می‌توان یک لیست از تگ‌هایی که ربات نباید پست‌های دارای آن‌ها را لایک کند، در اختیار ربات قرار داد.
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"])
با اعمال این تغییرات روی ربات، دیگر پست‌هایی که در توضیحات خود دارای تگ‌های nsfw یا naked هستند، توسط ربات لایک نمی‌شوند. می‌توان هر تگ دیگری را نیز به این لیست اضافه کرد. اکنون، می‌توان به ربات گفت که نه تنها پست‌ها را لایک کند، بلکه برخی از منتشر کنندگان آن پست‌ها را نیز دنبال کند. این کار با استفاده از متد set_do_follow()‎ قابل انجام است.
from instapy import InstaPy session = InstaPy(username="<your_username>", password="<your_password>") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50)
در صورت اجرای اسکریپت، ربات پنجاه درصد از کاربرانی را که پست‌های آن‌ها را لایک کرده است، دنبال می‌کند. همانطور که پیش‌تر نیز بیان شد، سوابق کلیه فعالیت‌های ربات، ثبت (Log) می‌شود. همچنین، می‌توان ربات را به گونه‌ای تنظیم کرد که برای پست‌ها نظر نیز درج کند. در این راستا، باید دو کار انجام داد. اول آنکه باید قابلیت نظر گذاشتن را با استفاده از set_do_comment()‎ فعال کرد.