Перевод статьи Парсинг Инстаграм: https://www.makeuseof.com/python-instagram-fetch-data/

Instagram — одна из самых популярных социальных сетей с миллиардами пользователей. Парсинг Инстаграм имеет огромную ценность для компаний, маркетологов и частных лиц. Любой может использовать эти данные для анализа данных, целевого маркетинга и получения информации.
Вы можете использовать Python для создания автоматизированного инструмента, который извлекает данные из Instagram. И в этом поможет удивительная библиотека Instaloader
Установка необходимых библиотек
Instaloader — это библиотека Python, которую вы можете использовать для извлечения общедоступных данных из Instagram. Вы можете получить доступ к данным, таким как изображения, видео, имя пользователя, количество постов, количество подписчиков, биографию и т. д. Обратите внимание, что Instaloader никоим образом не связан, не авторизован и не поддерживается Instagram.
Чтобы установить instaloader через pip, выполните следующую команду:
1 |
pip install instaloader |
Далее вам нужно установить библиотеку Pandas.
Pandas — это библиотека Python, которая в основном используется для обработки и анализа данных. Выполните следующую команду, чтобы установить ее:
1 |
pip install pandas |
Теперь вы готовы приступить к настройке кода и извлечению данных из Instagram.
Парсинг Инстаграм — Настройка кода
Чтобы настроить инструмент получения данных из Instagram, вам необходимо импортировать библиотеку Instaloader Python и создать экземпляр класса Instaloader. После этого вам нужно предоставить дескриптор Instagram профиля, из которого вы хотите извлечь данные.
1 2 3 4 5 6 7 8 |
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) |
Это хороший первый шаг, чтобы проверить основы работы. Вы должны увидеть некоторые значимые данные без ошибок:
1 |
<profile cristiano (173560420)> |
Извлечение данных из профиля
Вы можете извлечь общедоступные данные, такие как имя пользователя, количество сообщений, количество подписчиков, количество подписок, биографию, идентификатор пользователя и внешний URL-адрес с помощью Instaloader. Вам нужно только предоставить дескриптор Instagram профиля.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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) |
Вы должны увидеть много информации о профиле из указанного вами дескриптора:

Извлечение электронных писем из биографии
Вы можете извлечь адреса электронной почты из биографии Instagram любого профиля, используя регулярные выражения. Вам нужно импортировать библиотеку Python re и передать регулярное выражение для проверки электронной почты в качестве параметра методу re.findall():
1 2 3 4 5 6 7 8 9 10 11 |
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(). Кроме того, вы можете повторять и печатать/сохранять отдельные результаты.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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) |
Извлечение подписчиков и подписчиков учетной записи
Вы можете извлечь подписчиков учетной записи и тех, на кого он подписан. Для этого нужно будет залогиниться, поэтому укажитедет свои логин и пароль, чтобы получить эти данные.
Внимение:
Никогда не используйте свои личные учетные записи для извлечения данных из Instagram, так как это может привести к временной или постоянной блокировке вашей учетной записи.
После создания экземпляра класса Instaloader вам необходимо указать свое имя пользователя и пароль. Это делается для того, чтобы бот мог войти в Instagram, используя вашу учетную запись, и получить данные о подписчиках и подписках.
Затем вам нужно предоставить дескриптор Instagram целевого профиля. Методы get_followers() и get_followees() извлекают подписчиков и подписчиков. Вы можете получить имена пользователей подписчиков и подписчиков, используя свойства follower.username и Followee.username соответственно.
Если вы хотите сохранить результаты в файле CSV, вам сначала нужно преобразовать данные в объект Pandas DataFrame. Используйте метод pd.DataFrame() для преобразования объекта списка в DataFrame.
Наконец, вы можете экспортировать объект DataFrame в файл CSV, используя метод to_csv(). Вам необходимо передать имя файла.csv в качестве параметра этому методу, чтобы получить экспортированные данные в формате файла CSV.
Внимение:
Только владельцы аккаунтов могут видеть всех подписчиков и подписчиков. Вы не сможете извлечь все данные о подписчиках и подписках, используя этот или любой другой метод.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 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().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 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, упрощают извлечение, анализ и визуализацию данных.