Instagram est l'un des sites de médias sociaux les plus populaires avec des milliards d'utilisateurs. Tout le monde, des étudiants aux célébrités, a des comptes Instagram. Les données publiques d'Instagram peuvent être d'une immense valeur pour les entreprises, les spécialistes du marketing et les particuliers. Tout le monde peut utiliser ces données pour effectuer des analyses de données, cibler le marketing et générer des informations.
Vous pouvez utiliser Python pour créer un outil automatisé qui extrait les données Instagram.
Installation des bibliothèques requises
Instaloader est une bibliothèque Python que vous pouvez utiliser pour extraire des données accessibles au public à partir d'Instagram. Vous pouvez accéder à des données telles que des images, des vidéos, un nom d'utilisateur, non. des messages, nombre de followers, nombre de suivis, bio, etc. en utilisant Instaloader. Notez qu'Instaloader n'est en aucun cas affilié, autorisé, maintenu ou approuvé par Instagram.
Pour installer instaloader via pip, exécutez la commande suivante :
pépin installer instaloader
Vous devez avoir pip installé sur votre système pour installer des bibliothèques Python externes.
Ensuite, vous devez installer la bibliothèque Pandas Python. Pandas est une bibliothèque Python principalement utilisée pour effectuer des manipulations et des analyses de données. Exécutez la commande suivante pour l'installer :
pépin installer pandas
Vous êtes maintenant prêt à commencer à configurer le code et à extraire les données d'Instagram.
Configuration de votre code
Pour configurer l'outil de récupération de données Instagram, vous devez importer la bibliothèque Python Instaloader et créer une instance de la classe Instaloader. Après cela, vous devez fournir le pseudo Instagram du profil dont vous souhaitez extraire les données.
Le code Python d'Instagram Extractor est disponible dans un Référentiel GitHub et est libre d'utilisation sous la licence MIT.
importer instaloader
# Création d'une instance de la classe Instaloader
bot = instaloader. Instaloader()
# Chargement du profil depuis une poignée Instagram
profil = instaloader. Profile.from_username (bot.context, 'cristiano')
imprimer(profil)
C'est une bonne première étape pour vérifier le travail de base. Vous devriez voir des données significatives sans erreur :
Extraction des données du profil
Vous pouvez extraire des données précieuses accessibles au public comme le nom d'utilisateur, non. des publications, du nombre d'abonnés, du nombre d'abonnés, de la biographie, de l'ID utilisateur et de l'URL externe à l'aide d'Instaloader avec seulement quelques lignes de code. Il vous suffit de fournir le pseudo Instagram du profil.
importer instaloader
importer pandas comme pd# Création d'une instance de la classe Instaloader
bot = instaloader. Instaloader()
# Charger un profil à partir d'une poignée Instagram
profil = instaloader. Profile.from_username (bot.context, 'leomessi')
imprimer("Nom d'utilisateur: ", profil.nom d'utilisateur)
imprimer("ID de l'utilisateur: ", profil.userid)
imprimer("Nombre de postes: ", profil.mediacount)
imprimer("Nombre d'abonnés: ", profil.abonnés)
imprimer("Compte suivant: ", profil.abonnés)
imprimer("Bio: ", profil.biographie)
imprimer("URL externe: ", profil.external_url)
Vous devriez voir beaucoup d'informations de profil à partir de la poignée que vous spécifiez :
Extraire des e-mails de Bio
Vous pouvez extraire les adresses e-mail de la bio Insta de n'importe quel profil en utilisant expressions régulières. Vous devez importer les Python concernant bibliothèque et passez l'expression régulière de validation de l'e-mail en tant que paramètre à la re.findall() méthode:
importer instaloader
importer concernant
# Création d'une instance de la classe Instaloader
bot = instaloader. Instaloader()
profil = instaloader. Profile.from_username (bot.context, "richesse")
imprimer("Nom d'utilisateur: ", profil.nom d'utilisateur)
imprimer("Bio: ", profil.biographie)
emails = re.findall (r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", profil.biographie)
print("Emails extraits depuis la bio :")
imprimer(courriels)
Le script imprimera tout ce qu'il reconnaît comme une adresse e-mail dans la biographie :
Extraction des données des meilleurs résultats de recherche
Lorsque vous recherchez quoi que ce soit sur Instagram, vous obtenez plusieurs résultats, notamment des noms d'utilisateur et des hashtags. Vous pouvez extraire les meilleurs résultats de recherche à l'aide de la get_profiles() et get_hashtags() méthodes. Il vous suffit de fournir la requête de recherche dans le instaloader. TopSearchResults() méthode. De plus, vous pouvez itérer et imprimer/stocker les résultats individuels.
importer instaloader
# Création d'une instance de la classe Instaloader
bot = instaloader. Instaloader()# Fournissez la requête de recherche ici
search_results = instaloader. TopSearchResults (bot.context, 'musique')# Itération sur les noms d'utilisateur extraits
pournom d'utilisateurdansRésultats de recherche.get_profiles():
imprimer(nom d'utilisateur)
# Itération sur les hashtags extraits
pourhashtagdansRésultats de recherche.get_hashtags():
imprimer(hashtag)
La sortie inclura tous les noms d'utilisateur et hashtags correspondants :
Extraction des abonnés et suivis d'un compte
Vous pouvez extraire les abonnés d'un compte, et ceux qu'il suit lui-même, en utilisant Instaloader. Vous devrez fournir un nom d'utilisateur et un mot de passe Instagram pour récupérer ces données.
N'utilisez jamais vos comptes personnels pour extraire des données d'Instagram car cela pourrait entraîner l'interdiction temporaire ou permanente de votre compte.
Après avoir créé une instance de la classe Instaloader, vous devez fournir votre nom d'utilisateur et votre mot de passe. C'est ainsi que le bot peut se connecter à Instagram en utilisant votre compte et récupérer les données des abonnés et des suivis.
Ensuite, vous devez fournir le pseudo Instagram du profil cible. Le get_followers() et get_followees() les méthodes extraient les suiveurs et les suivis. Vous pouvez obtenir les noms d'utilisateur des abonnés et des abonnés en utilisant le suiveur.nom d'utilisateur et followee.username propriétés respectivement.
Si vous souhaitez stocker les résultats dans un fichier CSV, vous devez d'abord convertir les données en un objet Pandas DataFrame. Utilisez le pd. Trame de données() méthode pour convertir un objet de liste en un DataFrame.
Enfin, vous pouvez exporter l'objet DataFrame vers un fichier CSV en utilisant le to_csv() méthode. Vous devez passer le nomfichier.csv en tant que paramètre de cette méthode pour obtenir les données exportées au format de fichier CSV.
Seuls les propriétaires de compte peuvent voir tous les abonnés et suivis. Vous ne pourrez pas extraire tous les abonnés et les données suivantes en utilisant cette méthode ou toute autre méthode.
# Importation de bibliothèques
importer instaloader
importer pandas comme pd# Création d'une instance de la classe Instaloader
bot = instaloader. Instaloader()
bot.login (utilisateur="Ton nom d'utilisateur", mot de passe="Votre mot de passe")# Charger un profil à partir d'une poignée Instagram
profil = instaloader. Profile.from_username (bot.context, 'Your_target_account_insta_handle')# Récupération des noms d'utilisateur de tous les abonnés
followers = [follower.username pour le suiveur dans profile.get_followers()]# Conversion des données en DataFrame
followers_df = pd. DataFrame (abonnés)# Stockage des résultats dans un fichier CSV
followers_df.to_csv('followers.csv', indice=Faux)# Récupérer les noms d'utilisateur de tous les suivants
suivants = [followee.username pour followee dans profile.get_followees()]# Conversion des données en DataFrame
suivants_df = pd. DataFrame (suites)
# Stockage des résultats dans un fichier CSV
suivants_df.to_csv('suivis.csv', indice=Faux)
Télécharger des publications depuis un compte Instagram
Encore une fois, pour télécharger des publications à partir de n'importe quel compte, vous devrez fournir un nom d'utilisateur et un mot de passe. C'est ainsi que le bot peut se connecter à Instagram en utilisant votre compte. Vous pouvez récupérer toutes les données des publications à l'aide de la get_posts() méthode. Et vous pouvez itérer et télécharger tous les messages individuels en utilisant le download_post() méthode.
# Importation de bibliothèques
importer instaloader
importer pandas comme pd# Créer une instance de la classe Instaloader
bot = instaloader. Instaloader()
bot.login (utilisateur="Ton nom d'utilisateur",passwd="Votre mot de passe")# Charger un profil à partir d'une poignée Instagram
profil = instaloader. Profile.from_username (bot.context, 'Your_target_account_insta_handle')# Récupération de tous les messages d'un objet
messages = profil.get_posts()
# Itérer et télécharger tous les messages individuels
pour index, post in enumerate (posts, 1):
bot.download_post (post, cible=f"{profile.username}_{index}")
Scraper le Web avec Python
Le data scraping ou web scraping est l'un des moyens les plus courants d'extraire des informations utiles du Web. Vous pouvez utiliser les données que vous extrayez pour le marketing, la création de contenu ou la prise de décision.
Python est le langage préféré pour le scraping de données. Des bibliothèques telles que BeautifulSoup, Scrapy et Pandas simplifient l'extraction, l'analyse et la visualisation des données.