Поиск по сайту:

Как получить данные из Instagram с помощью Python


Эта удобная библиотека упрощает получение данных из Instagram.

Instagram — одна из самых популярных социальных сетей с миллиардами пользователей. У каждого, от студентов до знаменитостей, есть аккаунты в Instagram. Публичные данные из Instagram могут иметь огромную ценность для бизнеса, маркетологов и частных лиц. Любой может использовать эти данные для анализа данных, целевого маркетинга и получения информации.

Вы можете использовать Python для создания автоматизированного инструмента, извлекающего данные Instagram.

Установка необходимых библиотек

Instaloader — это библиотека Python, которую вы можете использовать для извлечения общедоступных данных из Instagram. Вы можете получить доступ к таким данным, как изображения, видео, имя пользователя и т. д. сообщений, количества подписчиков, количества подписчиков, биографии и т. д. с помощью Instaloader. Обратите внимание, что Instaloader каким-либо образом не связан, не авторизован, не поддерживается и не одобрен Instagram.

Чтобы установить инсталоадер через pip, выполните следующую команду:

pip install instaloader

Для установки внешних библиотек Python в вашей системе должен быть установлен pip.

Далее вам необходимо установить библиотеку Pandas Python. Pandas — это библиотека Python, которая в основном используется для манипулирования и анализа данных. Запустите следующую команду, чтобы установить его:

pip install pandas

Теперь вы готовы начать настройку кода и получение данных из Instagram.

Настройка вашего кода

Чтобы настроить инструмент получения данных Instagram, вам необходимо импортировать библиотеку Instaloader Python и создать экземпляр класса Instaloader. После этого вам необходимо предоставить дескриптор Instagram профиля, из которого вы хотите извлечь данные.

Код Python для Instagram Extractor доступен в репозитории 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 с помощью всего лишь нескольких строк кода. Вам нужно только указать дескриптор профиля в Instagram.

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)

Вы должны увидеть много информации о профиле по указанному вами дескриптору:

Извлечение писем из биографии

Вы можете извлечь адреса электронной почты из биографии любого профиля Insta, используя регулярные выражения. Вам необходимо импортировать библиотеку Python re и передать регулярное выражение для проверки электронного письма в качестве параметра в метод 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)

Скрипт напечатает в биографии все, что он распознает как адрес электронной почты:

Извлечение данных из лучших результатов поиска

Когда вы ищете что-либо в Instagram, вы получаете несколько результатов, включая имена пользователей и хэштеги. Вы можете извлечь самые популярные результаты поиска, используя методы get_profiles() и get_hashtags(). Вам нужно только указать поисковый запрос в методе instaloader.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
for username in search_results.get_profiles():
    print(username)
 
# Iterating over the extracted hashtags
for hashtag in search_results.get_hashtags():
    print(hashtag)

Вывод будет включать в себя все совпадающие имена пользователей и хэштеги:

Извлечение подписчиков и подписок на аккаунт

Вы можете извлечь подписчиков учетной записи и тех, на кого она подписана, с помощью Instaloader. Чтобы получить эти данные, вам потребуется указать имя пользователя и пароль Instagram.

Никогда не используйте свои личные учетные записи для извлечения данных из Instagram, поскольку это может привести к временной или постоянной блокировке вашей учетной записи.

После создания экземпляра класса Instaloader вам необходимо указать свое имя пользователя и пароль. Это сделано для того, чтобы бот мог войти в Instagram, используя вашу учетную запись, и получить данные о подписчиках и подписках.

Далее вам необходимо предоставить дескриптор Instagram целевого профиля. Методы get_followers() и get_followees() извлекают подписчиков и подписчиков. Вы можете получить имена пользователей подписчиков и подписчиков, используя свойства follower.username и followee.username соответственно.

Если вы хотите сохранить результаты в файле CSV, сначала необходимо преобразовать данные в объект Pandas DataFrame. Используйте метод pd.DataFrame(), чтобы преобразовать объект списка в DataFrame.

Наконец, вы можете экспортировать объект DataFrame в файл CSV, используя метод to_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)

Загрузка публикаций из аккаунта Instagram

Опять же, чтобы загружать сообщения из любой учетной записи, вам необходимо указать имя пользователя и пароль. Это сделано для того, чтобы бот мог войти в Instagram, используя вашу учетную запись. Вы можете получить все данные сообщений, используя метод 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}")

Очистите Интернет с помощью Python

Сбор данных или веб-скрапинг — один из наиболее распространенных способов извлечения полезной информации из Интернета. Вы можете использовать полученные данные для маркетинга, создания контента или принятия решений.

Python является предпочтительным языком для очистки данных. Такие библиотеки, как BeautifulSoup, Scrapy и Pandas, упрощают извлечение, анализ и визуализацию данных.

Статьи по данной тематике: