واکشی داده ها از اینستاگرام با این کتابخانه راحت آسان می شود.
اینستاگرام یکی از محبوب ترین شبکه های اجتماعی با میلیاردها کاربر است. همه از دانش آموزان گرفته تا افراد مشهور حساب اینستاگرام دارند. دادههای عمومی اینستاگرام میتواند برای کسبوکارها، بازاریابان و افراد ارزش زیادی داشته باشد. هر کسی می تواند از این داده ها برای انجام تجزیه و تحلیل داده ها، بازاریابی هدفمند و ایجاد بینش استفاده کند.
میتوانید از پایتون برای ساخت یک ابزار خودکار که دادههای اینستاگرام را استخراج میکند، استفاده کنید.
نصب کتابخانه های مورد نیاز
Instaloader یک کتابخانه پایتون است که می توانید از آن برای استخراج داده های عمومی در دسترس از اینستاگرام استفاده کنید. شما می توانید به داده هایی مانند تصاویر، فیلم ها، نام کاربری، خیر دسترسی داشته باشید. از پست ها، تعداد فالوورها، تعداد فالوورها، بیو و غیره با استفاده از Instaloader. توجه داشته باشید که Instaloader به هیچ وجه به اینستاگرام وابسته، مجاز، نگهداری یا تایید نشده است.
برای نصب installoader از طریق پیپ، دستور زیر را اجرا کنید:
pip install instaloader
برای نصب کتابخانه های خارجی پایتون باید پیپ را روی سیستم خود نصب کرده باشید.
در مرحله بعد، باید کتابخانه Pandas Python را نصب کنید. Pandas یک کتابخانه پایتون است که عمدتا برای انجام دستکاری داده ها و تجزیه و تحلیل داده ها استفاده می شود. برای نصب آن دستور زیر را اجرا کنید:
pip install pandas
اکنون، شما آماده شروع به تنظیم کد و واکشی داده ها از اینستاگرام هستید.
تنظیم کد شما
برای راه اندازی ابزار واکشی داده های اینستاگرام، باید کتابخانه Instaloader Python را وارد کرده و نمونه ای از کلاس Instaloader ایجاد کنید. پس از آن، باید دسته اینستاگرام پروفایلی را که میخواهید دادهها را از آن استخراج کنید، ارائه دهید.
کد Python Extractor Instagram در a موجود است
مخزن GitHub
و استفاده از آن تحت مجوز MIT برای شما رایگان است.
import instaloader
# Creating an instance of the Instaloader class
bot = instaloader.Instaloader()
# Loading the profile from an Instagram handle
profile = instaloader.Profile.from_username(bot.context, 'cristiano')
print(profile)
این اولین قدم خوب برای بررسی اصول اولیه کار است. شما باید برخی از داده های معنی دار را بدون خطا ببینید:
استخراج داده ها از نمایه
میتوانید دادههای با ارزش در دسترس عمومی مانند نام کاربری، نه، استخراج کنید. تعداد پستها، تعداد فالوورها، تعداد فالوورها، بیوگرافی، شناسه کاربری و URL خارجی با استفاده از Instaloader تنها با چند خط کد. شما فقط باید دسته اینستاگرام پروفایل را ارائه دهید.
import instaloader
import pandas as pd
# Creating an instance of the Instaloader class
bot = instaloader.Instaloader()
# Loading a profile from an Instagram handle
profile = instaloader.Profile.from_username(bot.context, 'leomessi')
print("Username: ", profile.username)
print("User ID: ", profile.userid)
print("Number of Posts: ", profile.mediacount)
print("Followers Count: ", profile.followers)
print("Following Count: ", profile.followees)
print("Bio: ", profile.biography)
print("External URL: ", profile.external_url)
شما باید تعداد زیادی اطلاعات نمایه را از دسته ای که مشخص می کنید ببینید:
استخراج ایمیل از Bio
میتوانید با استفاده از عبارات منظم، آدرسهای ایمیل را از بیو Insta هر نمایه استخراج کنید. شما باید کتابخانه re Python را وارد کنید و عبارت منظم برای اعتبارسنجی ایمیل را به عنوان پارامتر به متد re.findall() منتقل کنید:
import instaloader
import re
# Creating an instance of Instaloader class
bot = instaloader.Instaloader()
profile = instaloader.Profile.from_username(bot.context, "wealth")
print("Username: ", profile.username)
print("Bio: ", profile.biography)
emails = re.findall(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", profile.biography)
print("Emails extracted from the bio:")
print(emails)
این اسکریپت هر چیزی را که به عنوان آدرس ایمیل در بیو تشخیص دهد چاپ می کند:
استخراج داده های نتایج جستجوی برتر
وقتی هر چیزی را در اینستاگرام جستجو می کنید، چندین نتیجه از جمله نام کاربری و هشتگ دریافت می کنید. شما می توانید نتایج جستجوی برتر را با استفاده از متدهای get_profiles() و get_hashtags() استخراج کنید. شما فقط باید عبارت جستجو را در متد installoader.TopSearchResults() ارائه دهید. علاوه بر این، می توانید نتایج فردی را تکرار و چاپ/ذخیره کنید.
import instaloader
# Creating an instance of the Instaloader class
bot = instaloader.Instaloader()
# Provide the search query here
search_results = instaloader.TopSearchResults(bot.context, 'music')
# Iterating over the extracted usernames
forusernameinsearch_results.get_profiles():
print(username)
# Iterating over the extracted hashtags
forhashtaginsearch_results.get_hashtags():
print(hashtag)
خروجی شامل هر نام کاربری و هشتگ منطبق خواهد بود:
استخراج فالوورها و دنبال کنندگان یک حساب کاربری
با استفاده از Instaloader می توانید فالوورهای یک حساب و آنهایی را که خودش دنبال می کند استخراج کنید. برای بازیابی این داده ها باید نام کاربری و رمز عبور اینستاگرام را وارد کنید.
هرگز از حساب های شخصی خود برای استخراج داده ها از اینستاگرام استفاده نکنید زیرا ممکن است حساب شما به طور موقت یا دائم مسدود شود.
پس از ایجاد یک نمونه از کلاس Instaloader، باید نام کاربری و رمز عبور خود را وارد کنید. این به این دلیل است که ربات می تواند با استفاده از حساب کاربری شما وارد اینستاگرام شود و اطلاعات فالوورها و فالوورها را واکشی کند.
در مرحله بعد، باید دسته اینستاگرام پروفایل هدف را ارائه دهید. متدهای get_followers() و get_followees() فالوورها و دنبال کنندگان را استخراج می کنند. با استفاده از ویژگی های follower.username و followee.username می توانید نام کاربری فالوورها و دنبال کنندگان را دریافت کنید.
اگر می خواهید نتایج را در یک فایل CSV ذخیره کنید، ابتدا باید داده ها را به یک شی Pandas DataFrame تبدیل کنید. از متد ()pd.DataFrame برای تبدیل شیء لیست به DataFrame استفاده کنید.
در نهایت، میتوانید شی DataFrame را با استفاده از روش ()to_csv به یک فایل CSV صادر کنید. شما باید filename.csv را به عنوان یک پارامتر به این روش ارسال کنید تا داده های صادر شده را در قالب فایل CSV دریافت کنید.
فقط صاحبان حساب می توانند همه دنبال کنندگان و دنبال کنندگان را ببینند. با استفاده از این روش یا هر روش دیگری نمیتوانید تمام دادههای فالوورها و دنبالکنندگان را استخراج کنید.
# Importing Libraries
import instaloader
import pandas as pd
# Creating an instance of the Instaloader class
bot = instaloader.Instaloader()
bot.login(user="Your_username", passwd="Your_password")
# Loading a profile from an Instagram handle
profile = instaloader.Profile.from_username(bot.context, 'Your_target_account_insta_handle')
# Retrieving the usernames of all followers
followers = [follower.username for follower in profile.get_followers()]
# Converting the data to a DataFrame
followers_df = pd.DataFrame(followers)
# Storing the results in a CSV file
followers_df.to_csv('followers.csv', index=False)
# Retrieving the usernames of all followings
followings = [followee.username for followee in profile.get_followees()]
# Converting the data to a DataFrame
followings_df = pd.DataFrame(followings)
# Storing the results in a CSV file
followings_df.to_csv('followings.csv', index=False)
دانلود پست ها از اکانت اینستاگرام
مجدداً، برای بارگیری پست ها از هر حساب کاربری، باید یک نام کاربری و رمز عبور ارائه دهید. این به این دلیل است که ربات می تواند با استفاده از حساب کاربری شما وارد اینستاگرام شود. شما می توانید تمام داده های پست ها را با استفاده از متد ()get_posts بازیابی کنید. و می توانید با استفاده از متد ()download_post تمامی پست ها را تکرار و دانلود کنید.
# Importing Libraries
import instaloader
import pandas as pd
# Create an instance of Instaloader class
bot = instaloader.Instaloader()
bot.login(user="Your_username",passwd="Your_password")
# Loading a profile from an Instagram handle
profile = instaloader.Profile.from_username(bot.context, 'Your_target_account_insta_handle')
# Retrieving all posts in an object
posts = profile.get_posts()
# Iterating and downloading all the individual posts
for index, post in enumerate(posts, 1):
bot.download_post(post, target=f"{profile.username}_{index}")
وب را با استفاده از پایتون خراش دهید
خراش دادن داده یا وب اسکرپینگ یکی از رایج ترین روش ها برای استخراج اطلاعات مفید از وب است. می توانید از داده هایی که استخراج می کنید برای بازاریابی، تولید محتوا یا تصمیم گیری استفاده کنید.
پایتون زبان ترجیحی برای خراش دادن داده ها است. کتابخانههایی مانند BeautifulSoup، Scrapy و Pandas استخراج، تجزیه و تحلیل و تجسم دادهها را ساده میکنند.