Github: @EhsanShahbazii - Telegram: @ehsandevv
خودتو با آنفالویاب ویرگول مجهز کن!
احتمالا از اون آدمایی هستید که وقتی کسی شمارو آنفالو میکنه میخواین بفهمید کی بود و چی بود!😐 خب توی اینستاگرام یه برنامه دیگه نیازه نصب بشه بعد از اون نشون میده.🤲 ولی خب این آپشن یه مزیت حساب میشه و نیاز به اپلیکیشن دوم هست. یعنی خود سرویس دهنده ها این رو پیاده نمیکنند.💔
خب توی سایت ویرگول هم همچین آپشنی وجود نداره و خب کاملا طبیعیه. 👍حالا وقتی کسی آنفالو میکنه شمارو، یه راه برای پیدا کردنش اینه از اول اسامی همه رو روی کاغذ بنویسی😐😂 و وقتی یه نفر آنفالو کرد بری ببینی اسم چه کسی توی کاغذ نیست. این روش مخصوص افراد به شدت بیکار و علاف هست.😂👍
خب خواستم ببینم چطور میتونم همچین چیزی رو پیاده کنم و یه مکانیزم خیلی ساده داشته باشه. توی سایت گشتم ببینم چیزی دستگیرم میشه یا نه!💻
اول اینکه دست ویرگول درد نکنه😐 مارو چند بار ربات حساب کرده و چند روز غیرفعال شدیم😂. بماند که خب یزیدا من یه خرده سریع تر تو سایت میگردم،🤖 ربات که نیستم!! ولی خب الان خیلی آروم کردم و خدا رو شکر رفع شده.🤲
توضیح کلی اسکریپت
روش کار رو خیلی ساده گرفتم. لیست کسایی که شمارو دنبال میکنن رو میگیرم و بعد هر وقت عدد کم شد یه بار هم لیست رو میگیرم.😗 اختلاف هر دو لیست رو میگیرم و اونی که آنفالو کرده اطلاعاتش رو میبینید! میتونید با چاقو پلاستیکی🔪 برید بالا سرش!
خب روی ریکوئست هایی که از سمت کلاینت به سرور میره رو نگاه کردم و یه چیز قشنگ و کاربردی پیدا کردم🕺:
خب وقتی لیست کسایی که یه فرد رو دنبال کردن رو میزنیم ببینیم، یه ریکوئست با آدرس زیر به سرور میره، کاربر رو تاس🎲 انداختم و یه نفر در اومد:
https://virgool.io/api2/app/users/haniehmahdavi26/followers?page=1
اول فک کردم خودم تمام اطلاعات افراد رو بگیرم و پیدا کنم ولی دیدم به به ویرگول جان💓 خودش دو دستی تر وتمیز اطلاعات رو میده. خب ما هم گفتیم از اون استفاده کنیم:
خب لیست افرادی که شمارو فالو کردن اینجوری به دست میاد و اطلاعات زیادی هم از اونا دیده میشه مثلا:👨💻 عکس پروفایل، بیوگرافی، لینک پروفایل، فالو کردی یا نه، تعداد فالوور ها، تعداد فالو کننده و خیلی چیزای دیگه.
خب دیگه کارمون خیلی راحت شد. البته قبلا تجربه اش رو داشتم وقتی توی سایت تو قسمت دنبال شونده ها یا دنبال کننده ها سریع حرکت میکردی یا زود زود همه رو فالو یا آنفالو میکردی ربات تشخصی میدادن و میرفتی پشت میله ها و آب خنک میخوردی.🔫
برای همین گفتم خب این ریکوئست که نیاز به احراز هویت نداره. پس میتونه ip منو بلاک کنه و این بده.😐🔪 برای همین گفتم یه ترفند بزنم و proxy rotation بزنم که ip رو کاور کنه و نتونه تشخیص بده و بلاک نشم. ولی فک نکنم در اون حد تعداد ریکوئست بالا بزنم.
قسمت اول: پیاده سازی اسکریپت
خب بریم دست به کار بشیم. اول اینکه باید تمام اطلاعات افراد رو از این لینک بگیریم. اون رو توی فایل csv خوشگل ذخیره کنیم و ازش به نحو احسنت استفاده میکنیم و حال میکنیم:
خب نکاتی که لازمه رو میگم: اول اینکه تا کی ریکوئست بزنیم؟ ما که نمیدونیم تعداد Page حدودش چنده😐. سه روش داریم اول اینکه خب میدونیم که ویرگول توی هر ریکوئست تعداد 10 کاربر رو نشون میده:
تو عکس میبینیم 10 تا object همون شئ رو فرستاده. حالا سه مدل پیاده سازی داریم.
- بیایم تعداد افراد کل رو تقسیم بر 10 کنیم و بعد Sail (سقف) بگیریم که خب پیچیده تر میشه.👨
- بیایم و از قسمت pagination که توی دیتا میگیرم تعداد lastPage رو حساب کنیم. (عکس پایین)
- بیایم و توی کد بگیم هر وقت data خالی شد تموم کن. (این روش به نظرم بهینه تره)🧠
خب نکته دوم این بود میتونستیم فقط نام کاربری رو نگه داریم ولی من گفتم همه اطلاعات رو ذخیره کنیم بهتره. پس اطلاعاتی که ذخیره میشه به صورت زیر هست:😗
خب درنهایت برای تست چند نفر رو از لیست حذف میکنم ببینیم نتیجه چه مدلی میشه:👨💻
به صورت شکل بالا توی جدول یا همون csv میتونید افرادی که شما رو آنفالو کردن رو پیدا کنید.🕺
قسمت نهایی: توضیح آخر
طبق معمول پست های قبلی میشه برای اینم آپشن های زیادی اضافه کرد مثل خودکار کردن اسکریپت که هر دقیقه کار کنه و اونوقت با ساعت و تاریخ دقیق کی آنفالو کرده نشون میده. یا یه گرافیک داد به برنامه و عکس و بیو و همه اطلاعات رو اونجا نشون داد. دیگه proxy rotation اضافه نکردم چون توی چند ریکوئست بلاک نشدم.
سورس کد رو توی github, gist میزارم میتونید ازش دیدن بفرمایید😗🔥 :)
مطلبی دیگر از این انتشارات
کی وفاداره و هواتو تو ویرگول داره؟
مطلبی دیگر از این انتشارات
گشنته و گشنه تر از معدت، جیبته؟
مطلبی دیگر از این انتشارات
دوستت زیر کدوم پست ها کامنت گذاشته؟ مچشو بگیر!