در این پروژه شما باید با استفاده از کتابخانه های زیر یک خزشگر اینستاگرام بنویسید
BeautifulSoup
requests
Selenium
Tkinter
pandas
threading
استفاده از بسته های دیگر در این پروژه مجاز نمی باشد
برنامه شما باید حاوی بخش های زیر باشد
* یک هشتگ دلخواه را در اینستاگرام جست و جو کند و n اکانتی را که در نتایج جست و جوی اینستاگرام حاوی این هشتگها بوده اند لیست کند. n باید پارامتریک باشد و ابتدای برنامه قابل تنظیم باشد
* در مرحله بعد m پست آخر هر یک از این اکانت ها را در نظر بگیرید و متن کامنت های ذیل هر کدام از این پست ها را به همراه تعداد لایک های آن استخراج کنید. m باید به صورت پارامتری قابل تنظیم باشد
* اطلاعات ذخیره شده را در یک دیتافریم و نهایتا روی هارد ذخیره کنید. دیتافریم شما باید حاوی کامنت، نام کاربری نویسنده کامنت ، نام کاربری اکانت پست اصلی و تعداد لایک های کامنت باشد
* یک واسط کاربری گرافیکی (که ترجیحا با tkinter ایجاد شده باشد) که دارای ابزارهای لازم برای تعامل با کاربر و نمایش خروجی های مورد نظر باشد. از جمله:
- در این پنجره کاربر باید بتواند لیست اکانت هایی را که برنامه شما سراغ پست های آنها خواهد رفت را ببیند و آنها را کم یا زیاد کند
- مقدار m و n را تنظیم کند
- همچنین باید در این پنجره به کاربر نشان داده شود که تا کنون چه تعداد از اکانتها خزش شده اند و چه تعداد باقی مانده است
- زمان سپری شده و زمان تخمینی تا انتهای کار نیز باید نمایش داده شود.پس از پایان کار نیز گزارشی از زمان سپری شده برای کل کار را نشان دهد
- محل ذخیره فایل خروجی روی هارد توسط کاربر تعیین شود
- اضافه کردن موارد دیگر در این واسط گرافیکی نمره امتیازی خواهد داشت
* برنامه شما باید به صورت مالتی ترد نوشته شود. می توانید انتخاب کنید که برای خزش هر اکانت از یک ترد استفاده کنید یا برای خزش هر کامنت یک ترد جدید ایجاد کنید. در صورتی که اجرای برنامه شما از سایر هم کلاسی هایتان سریع تر باشد، نمره امتیازی خواهد داشت
* در این برنامه استایل برنامه نویسی شئ گرا مد نظر نیست؛ اما در صورت پیاده سازی این برنامه به صورتی شئ گرا، نمره امتیازی خواهد داشت
* توابع و کلاسهایی که تعریف میکنید باید دارای داک استرینگ باشند. تمیز بودن کدها طبق اصول معرفی شده در کلاس درس الزامی است
بخش امتیازی ویژه
یک مساله خاص را در نظر بگیرید و هشتگ های مرتبط با آن را از طریق برنامه خودتان جست و جو یا کنید. مثلا فرض کنید می خواهید ببینید کامنتهای افراد در مورد شرکت سامسونگ چه قدر مثبت منفی است. تمام هشتگ های مربوط به شرکت سامسونگ از جمله انواع برندهای مربوطه و ... را از طریق برنامه خودتان جست و جو کنید کامنتهای مربوطه را استخراج کنید.
سپس تعداد 1000تا از کامنتها را به صورت تصادفی درنظر بگیرید و آنها را برچسب گذاری کنید. به این صورت که اگر کامنت دارای نظر مثبت نسبت به شرکت سامسونگ بود، برچست مثبت، در صورتی که دارای نظر منفی بود، برچسب منفی و در غیر این صورت دارای برچسب خنثی باشد. )به صورت معمول برچسب گذاری 1000 تا کامنت کمتر از 2 ساعت از شما زمان می گیرد. می توانید این بخش از کار را به کمک سایر همکلاسی هایتان انجام دهید. هر چه تعداد کامنتها در این بخش بیشتر باشد، دقت خروجی شما بیشتر می شود.
با استفاده از ماژول fasttext در پایتون می توانید یک مدل بسازید که از روی این 1000 کامنت برچسب خورده تا حدی الگوی نظرات مثبت و منفی را یاد بگیرد. سپس این مدل می تواند با درکی که نسبت به منفی یا مثبت بودن یک نظر پیدا کرده، نظر خودش را درباره مثبت و منفی بودن هر کامنت جدیدی اعلام کند! بنابراین می توانید با این مدل تمام نظرات را تست کنید و بررسی کنید چه میزان از نظرات مثبت یا منفی بوده اند.برنامه شما میتواند گزارش کند که چه تعداد از نظرات کاربران درباره این موضوع مثبت یا منفی بوده است. (یا به صورت درصد نمایش دهد)
Owner
Mahdi
Hi, I'm Mahdi. I love everything related to computers.
PyTorch code to reproduce LyDROO algorithm [1], which is an online computation offloading algorithm to maximize the network data processing capability subject to the long-term data queue stability an