python_developer
前往频道在 Telegram
1 519
订阅者
无数据24 小时
-37 天
-430 天
帖子存档
1 519
×
search

مجله فرادرس
علوم پایه
ریاضی
برنامه نویسی
بورس و تحلیل تکنیکال
مهندسی
هوش مصنوعی
سلامت
بیشتر
آموزش ساخت ربات اینستاگرام با پایتون | از صفر تا صد
آخرین بهروزرسانی: ۱۲ مرداد ۱۴۰۰
زمان مطالعه: 17 دقیقه
برنامه نویسی، کامپیوتر، مهندسی 9378 بازدید
در این مطلب، آموزش ساخت ربات اینستاگرام با پایتون ارائه شده است. اما پیش از پرداختن به موضوع اصلی این مطلب یعنی آموزش ساخت ربات اینستاگرام با پایتون مبحث پایهایتر روش کار رباتهای اینستاگرام مورد بررسی قرار خواهد گرفت. سپس، «چارچوب نرمافزاری» (فریمورک | Framework) «سلنیوم» (Selenium) و چگونگی خودکارسازی (Automate) مرورگر با استفاده از آن، بررسی میشود. پس از بررسی روش خودکارسازی مرورگر با استفاده از چارچوب سلنیوم، روش استفاده از «الگوی شی صفحه» (Page Object Pattern) برای خوانایی و تستپذیری صفحه تشریح و در نهایت، آموزش ساخت ربات اینستاگرام با پایتون و با استفاده از ابزار «اینستاپای» (InstaPy) ارائه میشود.
فهرست مطالب این نوشته
آموزش ساخت ربات اینستاگرام با پایتون
ربات اینستاگرام چگونه کار میکند؟
چارچوب نرمافزاری سلنیوم
روش خودکارسازی مرورگر
روش استفاده از Page Object Pattern
آشنایی با InstaPy
آموزش ساخت ربات اینستاگرام با پایتون و InstaPy
معرفی بهلینک برای کارایی و اثرگذاری لینک پروفایل اینستاگرام
یک نکته مهم در آموزش ساخت ربات اینستاگرام با پایتون
مرورگر وب بدون واسط گرافیکی کاربر
استفاده از هوش مصنوعی برای تحلیل پستها
مرزهای روابط
آموزش ساخت ربات اینستاگرام با پایتون
وجه شباهت برخی از شرکتهای فعال در حوزه «شبکههای اجتماعی» (Social Networks) شامل «اینستاوست» (Instavast)، «سوشال مدیا اکسپلورر» (Social Media Explorer) و «کیکستا» (Kicksta) در چیست؟ پیش از پاسخ دادن به این پرسش و پرداختن به موضوع اصلی این مطلب یعنی آموزش ساخت ربات اینستاگرام با پایتون توضیحات اجمالی پیرامون زمینه فعالیت و خدمات شرکتهای مذکور ارائه میشود.
اینستاوَست
«اینستاوست» (Instavast) یک وبسایت خدمات و محصولات در حوزه شبکه اجتماعی اینستاگرام است که «ربات اینستاگرام» (Instagram Bot)، «پاسخدهی خودکار پیام خصوصی» (Automate Instagram Direct Messages | Auto
DM)، «ردیاب نظرات» (Comment Tracker) و «زمانبند پستها» (Post Scheduler) ارائه میکند. همچنین، «مولد هشتگ» (Hashtag Generator)، «هشتگهای ممنوع شده» (Banned Hashtags)، «دانلود از اینستاگرام» (Instagram Downloader) و «مبدل نام کاربری به شناسه» (Username to ID Convertor) از جمله عناوین خدمات رایگانی محسوب میشوند که توسط این وبسایت ارائه میشود.
کیکستا
«کیکستا» (Kicksta) که نام آن در واقع از عبارت «کیک استارت» (Kick Start) گرفته شده، همانطور که از نام آن نیز مشخص است، جرقه شروع و به بیان بهتر، ضربه اولیه شروع رشد را برای صفحات اینستاگرام افرادی فراهم میکند که در صدد جذب دنبالکنندگان و مشارکت آنها هستند. این شرکت به اذعان خود، با بهرهگیری از یک «فناوری هوش مصنوعی» (Artificial Intelligence Technology) و بدون استفاده از رباتها، «دنبالکنندگان جعلی» (Fake Followers) و «هرزنامه» (Spam)، تعداد دنبالکنندگان و میزان مشارکت مخاطبان برای یک اکانت را افزایش میدهد.
سوشال کپتن
«سوشال کپتن» (Social Captain) یک پلتفرم خودکارسازی اینستاگرام است که خدماتی شامل افزایش دنبالکنندگان، افزایش تعامل مخاطبان شامل «پسندها» (Likes) و «نظرات» (Comments)، تحلیلها و گزارشهای زمان واقعی و برخی از دیگر موارد را ارائه میکند.

اکنون، به پرسشی که در ابتدای این بخش مطرح شد، یعنی بیان شباهتهای این چند شرکت و سایر شرکتهای فعال در حوزه شبکههای اجتماعی با رسالت اینچنینی، پاسخ داده خواهد شد. چنانچه مشخص است، همه این شرکتها به افراد کمک میکنند تا در شبکههای اجتماعی گوناگون از جمله اینستاگرام، دامنه مخاطبهای خود یا همان دنبالکنندگان و البته، میزان مشارکت آنها (ٍEngagement) را افزایش دهند. اینکه چرا سازمانها یا افراد در صدد افزایش دنبالکنندگان و تعاملات آنها در شبکههای اجتماعی خود هستند، دلایل گوناگونی دارد. از جمله این دلایل برای سازمانها میتوان به برندسازی، افزایش آگاهی از برند در جامعه، افزایش فروش محصولات و خدمات و دیگر موارد اشاره کرد. افراد نیز با هدف افزایش شهرت و حتی مبدل کردن صفحات خود به جایگاهی تبلیغاتی که در آن با دریافت هزینه از مراکز مختلف اقدام به ساخت و انتشار محتوا میکنند، در صدد افزایش فالورها و مشارکت آنها هستند. اینها تنها بخش کوچکی از حجم انبوه دلایلی است که افراد به خاطر آنها به دنبال راهکارهای افزایش مخاطب و مشارکت مخاطبان هستند.
1 519
معرفی بهلینک برای کارایی و اثرگذاری لینک پروفایل اینستاگرام
همانطور که میدانید، در پروفایل اینستاگرام فقط امکان درج یک لینک وجود دارد. حال اگر بخواهید لینکهای مختلفی همچون لینک سایت، ایمیل، شمارههای تماس یا سایر لینکهای مفید مانند لینک کمپینهای تبلیغاتی یا آخرین پستهای وبلاگ خود را قرار دهید، چنین امکانی وجود نخواهد داشت. سرویس «بهلینک» را میتوان نوعی کارت ویزیت آنلاین به شمار آورد که تمامی این موارد را پوشش میدهد و فقط با استفاده از یک لینک اختصاصی، به تمامی این امکانات دست پیدا میکنید.
علاوه بر موارد گفته شده، ثبت سوالات متداول کسب و کار یا ارائه توضیحات مختلف در رابطه با تاریخچه فعالیتهای شما در بهلینک فراهم است. با توجه به محدود بودن تعداد کاراکترهای بیو اینستاگرام، ثبت آدرس دقیق نیز امکانپذیر نیست که این مشکل هم با ساخت بهلینک، برطرف میشود.
1 519
سایر ویژگیهای InstaPy
InstaPy یک پروژه قابل توجه است که ویژگیهای زیاد و جالبی دارد. این ویژگیها را میتوان در مستندات پایتون مشاهده کرد. سایر ویژگیهای پایتون و چگونگی کار با آنها نیز مشابه آنچه بیان شد قابل استفاده هستند.
1 519
این قطعه کد، موجب میشود که مرورگر بسته، سوابق (Logs) ذخیره و یک گزارش آماده شود که میتوان آن را در خروجی کنسول دید.
1 519
from instapy import InstaPy session = InstaPy(username="", password="") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50) session.set_do_comment(True, percentage=50) session.set_comments(["Nice!", "Sweet!", "Beautiful :heart_eyes:"]) session.end()
1 519
با اجرای اسکریپت، ربات یکی از سه نظری که به آن داده شده است را روی نیمی از پستهایی که با آنها تعامل دارد درج میکنند. اکنون که تنظیمات اولیه انجام شد، میتوان جلسه (Session) را با استفاده از end() پایان داد.
1 519
from instapy import InstaPy session = InstaPy(username="", password="") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50) session.set_do_comment(True, percentage=50) session.set_comments(["Nice!", "Sweet!", "Beautiful :heart_eyes:"])
1 519
در گام دوم، باید به ربات گفت که چه نظراتی را درج کند. این کار با استفاده از متد set_comments() انجام میشود.
1 519
from instapy import InstaPy session = InstaPy(username="", password="") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50) session.set_do_comment(True, percentage=50)
1 519
در صورت اجرای اسکریپت، ربات پنجاه درصد از کاربرانی را که پستهای آنها را لایک کرده است، دنبال میکند. همانطور که پیشتر نیز بیان شد، سوابق کلیه فعالیتهای ربات، ثبت (Log) میشود. همچنین، میتوان ربات را به گونهای تنظیم کرد که برای پستها نظر نیز درج کند. در این راستا، باید دو کار انجام داد. اول آنکه باید قابلیت نظر گذاشتن را با استفاده از set_do_comment() فعال کرد.
1 519
from instapy import InstaPy session = InstaPy(username="", password="") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"]) session.set_do_follow(True, percentage=50)
1 519
با اعمال این تغییرات روی ربات، دیگر پستهایی که در توضیحات خود دارای تگهای nsfw یا naked هستند، توسط ربات لایک نمیشوند. میتوان هر تگ دیگری را نیز به این لیست اضافه کرد. اکنون، میتوان به ربات گفت که نه تنها پستها را لایک کند، بلکه برخی از منتشر کنندگان آن پستها را نیز دنبال کند. این کار با استفاده از متد set_do_follow() قابل انجام است.
1 519
from instapy import InstaPy session = InstaPy(username="", password="") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5) session.set_dont_like(["naked", "nsfw"])
1 519
به طور پیشفرض، InstaPy نُه پست اول را به انضمام تعدادی که در amount توسط کاربر برای آن مشخص شده است (در اینجا ۵ برای هر تگ) لایک میکند. بنابراین، برای هر تگ به طور کلی ۱۴ پست (۵ + ۹) لایک میشود. همچنین، InstaPy هر فعالیتی که انجام میدهد را در سوابق (Log) ثبت میکند. همانطور که در بالا مشهود است، اینستاپای مشخص میکند که ربات کدام پست (Post)، با چه لینکی (Link)، با چه توضیحاتی (Description) و در کدام موقعیت جغرافیایی (Location) را لایک کرده است. همچنین، اینکه ربات روی پست کامنت گذاشته و یا صاحب حساب کاربری را فالو کرده است را نیز ثبت میکند. اکنون، باید ربات را به گونهای تنظیم کرد که محتوای نامناسب را لایک نکند. برای اجتناب از وقوع این موضوع، میتوان یک لیست از تگهایی که ربات نباید پستهای دارای آنها را لایک کند، در اختیار ربات قرار داد.
1 519
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
کپی
1 519
در اینجا، به متد یک لیست از تگها و تعداد تصاویری که برای هر تگ باید لایک کنند، داده میشود. در این مثال، ربات به گونهای تنظیم شده است که برای هر یک از دو تگ داده شده، پنج پست لایک کند و این یعنی، ربات کلا ۱۰ پست را لایک میکند. پس از اجرای کد، آنچه در زیر مشاهده میکنید به وقوع خواهد پیوست.
1 519
from instapy import InstaPy session = InstaPy(username="", password="") session.login() session.like_by_tags(["bmw", "mercedes"], amount=5)
1 519
اکنون زمان آن رسیده است که اسکریپت نوشته شده برای ربات، کارهایی جالبتر از وارد شدن به حساب کاربری فرد را انجام دهد. بدین منظور، فرض میشود که حساب کاربری که ربات برای آن ساخته شده، پیرامون خودروها است و بنابراین، ربات تمایل به دنبال کردن و تعامل با کاربرانی دارد که به خودروها علاقهمند هستند. در این راستا و برای شروع، ربات میتواند با لایک کردن پستهایی که دارای تگ bmw# یا mercedes# هستند شروع کند. بدین منظور، از متد like_by_tags() استفاده میشود.
