Gratter les données Twitter avec Python [Avec 2 API]
Publié: 2020-11-30Table des matières
introduction
Les plateformes de médias sociaux comme Twitter sont l'un des grands référentiels pour la collecte d'ensembles de données. Travailler sur un nouveau projet de science des données nécessite une bonne quantité de données, la collecte de l'ensemble de données n'est pas une tâche facile.
Et Twitter fournit un genre diversifié de données car il s'agit d'une collection de tweets de personnes ayant des mentalités et des sentiments différents. Ce type d'ensemble de données sans biais est une condition préalable indispensable à la formation d'un nouveau modèle d'apprentissage automatique.
Commençons!
Nous allons parcourir 2 API pour le scraping de données Twitter.
- Tweepy
- Twint
Tweepy
Avant de commencer à parcourir le code python pour récupérer des données à l'aide de l'API Tweepy, il y a un point que vous devez savoir que nous avons besoin des informations d'identification d'un compte de développeur Twitter et c'est un jeu d'enfant si vous les avez déjà.
Pour les personnes qui n'ont pas de compte développeur, vous pouvez en faire la demande ici . Et avant de demander un compte développeur, vous devez avoir un compte Twitter. Demander un compte développeur est un processus simple et l'application pose quelques questions de base comme la raison de la demande, etc. Et l'approbation du compte développeur prend généralement 2-3 jours.
Une fois que vous avez reçu l'approbation pour le compte développeur, notez vos clés d'API consommateur, votre jeton d'accès et le secret du jeton d'accès dans la section "clés et jetons".
De plus, il y a un point à noter qu'il y a peu de contraintes pour tweepy comme vous ne pouvez gratter que les tweets qui ne datent pas de plus d'une semaine. Et une limite de scraping, jusqu'à 18 000 tweets en 15 minutes.
Super, maintenant que nous avons des clés et des jetons du compte développeur, autorisons-les.
consumer_key = « votre clé de consommateur » consumer_secret = « votre secret de consommateur » access_token = " votre jeton d'accès " access_token_secret = " votre jeton secret " autorisation = tweepy.OAuthHandler(clé_consommateur, secret_consommateur) autorisation.set_access_token(access_token, access_token_secret) api = tweepy.API(authorization,wait_on_rate_limit = True ) |
Maintenant que nous avons autorisé nos informations d'identification, grattons les tweets d'un compte particulier. Pour l'instant, grattons les tweets de M. Sundar Pichai.
nom d' utilisateur = ' sundarpichai ' compter = 100 essayez : #ligne 1 tweets_obj = tweepy.Cursor(api.user_timeline,id = username).items(count) #ligne 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] pour tweet dans tweets_obj] #line3 tweets_df = pd.DataFrame(tweets_list) sauf BaseException comme e : print ( ' quelque chose s'est mal passé, ' , str (e)) |
Dans l'extrait ci-dessus, line1 crée un objet itérable avec tous les tweets et il est affecté à une variable "tweets_obj". Une fois que nous avons fini de créer un objet itérable, parcourons-le et extrayons toutes les données.
Nous extrayons seulement quelques attributs comme "created_at", "id", "text" et les ajoutons à chaque entrée dans un tableau 2D. Où chaque entrée contient toutes les données de chaque tweet que nous avons récupéré. Maintenant que nous avons un tableau 2D avec des attributs comme chaque entrée, nous pouvons le convertir en une trame de données en utilisant la syntaxe "pd.DataFrame()".
La raison de la conversion d'un tableau en une trame de données est plus de flexibilité, la disponibilité de méthodes prédéfinies et un accès facile le distinguent de toutes les structures de données pour les projets de science des données.
De même, parcourons un code pour récupérer des données qui ont une requête de texte particulière.
text_query = ' vocal pour local ' compter = 100 essayez : #ligne 1 tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count) #ligne 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] pour tweet dans tweets_obj] #line3 df = pd.DataFrame(tweets_list) sauf BaseException comme e : print ( ' quelque chose s'est mal passé, ' , str (e)) |
Dans l'extrait ci-dessus, tout est identique à l'extrait précédent. Enfin, nous avons créé une trame de données avec tous les tweets contenant la requête textuelle "vocal for local".
Si vous recherchez un grattage de données plus spécifique ou personnalisé, comme inclure davantage d'attributs tels que le nombre de retweets, le nombre de favoris, etc., nous pouvons personnaliser notre syntaxe et extraire d'autres attributs fournis par tweepy. Pour en savoir plus sur les autres attributs proposés par tweepy, consultez la documentation .
Twint
L'API Twint ne nécessite aucune information d'identification de compte de développeur, vous pouvez facilement gratter des tweets sans aucune clé d'autorisation. De plus, twint n'a aucune restriction comme le nombre de tweets, les délais, les limites de grattage, etc. Twint vous offre un grattage de données transparent et une API facile à utiliser.
Nous pouvons imprimer la liste des abonnés d'une personne en utilisant son nom d'utilisateur depuis l'API twint.
t_obj = twint.Config() t_obj.Username = " sundarpichai " twint.run.Followers(t_obj) |
Dans l'extrait ci-dessus, twint.Config() configure l'API twint et fait démarrer les choses. Et après avoir attribué un objet, nous pouvons utiliser cette référence pour notre travail, "t_obj.Username" attribue le nom d'utilisateur que nous avons entré. Et twint.run.Followers effectue une recherche de tous les abonnés de ce nom d'utilisateur.

Nous pouvons également stocker les données extraites dans une trame de données similaire à l'API tweepy.
t_obj.Limit = 100 t_obj.Username = " sundarpichai " t_obj.Pandas = Vrai twint.run.Followers(t_obj) result_df = twint.storage.panda.User_df |
Tout dans l'extrait est presque le même que l'extrait précédent, seulement avec une ligne supplémentaire de syntaxe "twint.storage.panda.User_df" qui convertit les données récupérées en une trame de données. La trame de données de résultat consiste en une liste d'abonnés au nom d'utilisateur donné.
Maintenant que nous avons vu le grattage des données d'abonné d'un nom d'utilisateur particulier, passons en revue le code de grattage des tweets d'un compte particulier.
t_obj.Search = " de:@sundarpichai " t_obj.Store_object = Vrai t_obj.Limit = 20 twint.run.Search(t_obj) tweets = t.search_tweet_list imprimer (tweets) |
Dans l'extrait ci-dessus, nous créons l'objet configuré pour rechercher les tweets d'une personne en particulier, nous pouvons également définir la limite des tweets lors du grattage en utilisant la syntaxe "t_obj.Limit". Et après avoir lancé la recherche, il crée une liste de tous les tweets et nous pouvons l'attribuer à une variable locale selon nos besoins.
Après avoir vu les extraits d'informations de grattage d'un compte particulier, vous pouvez avoir une question rapide qui est de savoir comment gratter les tweets contenant un mot-clé particulier ?. Ce n'est pas un problème, twint a une solution pour cela.
t_obj.Search = " science des données " t_obj.Store_object = Vrai t_obj.Limit = 100 twint.run.Search(t_obj) tweets = t.search_tweet_list imprimer (tweets) |
L'extrait ci-dessus est le même que l'extrait de grattage des tweets d'un compte particulier, avec une seule différence dans la ligne1. Nous pouvons également le convertir en une trame de données selon notre convenance.
Pour en savoir plus sur l'API twint, consultez leur référentiel et leur documentation .
Conclusion
Nous avons compris l'importance de scraper les données. Nous avons parcouru deux API et leurs fonctionnalités pour récupérer les données Twitter. Vu quelques méthodes pour convertir les données récupérées dans notre format de fichier requis. Maintenant que vous connaissez ces API, commencez à récupérer des données pour vos projets de science des données !
Chez upGrad , nous sommes heureux de vous aider et aimerions également vous informer des opportunités que vous pouvez avoir en apprenant Python. Python a été largement utilisé pour l'apprentissage automatique et la science des données, deux des technologies les plus populaires et les plus émergentes. Apprendre Python et avoir la connaissance de ces compétences vous permettra d'exceller dans votre domaine et d'obtenir de meilleures opportunités de carrière.
Nous avons de nombreux cours développés avec des experts de l'industrie et des meilleurs instituts universitaires pour vous fournir toutes les compétences nécessaires pour exceller dans ce domaine. Certains des cours qui peuvent vous aider à utiliser vos connaissances en python et à augmenter vos perspectives de carrière :
Sciences des données :
Découvrez les programmes de science des données en ligne d'upGrad développés avec IIIT-B, il s'agit d'un cours de science des données à part entière pour entrer dans ce domaine et faire une marque dans les industries avec vos connaissances.
Maîtrise ès sciences en science des données : Développé en coordination avec l'Université John Moores de Liverpool et l'IIIT-B, a obtenu une maîtrise en science des données de l'une des meilleures universités du monde.
Apprentissage automatique :
Certification avancée en apprentissage automatique et IA : IIT madras, l'un des meilleurs établissements d'enseignement de l'Inde, s'est associé à upGrad pour créer un cours avancé sur l'apprentissage automatique permettant aux individus d'avoir une connaissance complète de l'apprentissage automatique avec ce cours.
Maîtrise ès sciences en apprentissage automatique et intelligence artificielle : l'Université John Moores de Liverpool et l'IIIT-B se sont associés à upGrad pour fournir des maîtrises ès sciences complètes permettant aux individus d'apprendre la technologie en détail et d'obtenir un diplôme officiel dans cette technologie pour préparer une réussite. chemin dans ce domaine.
Diplôme PG en apprentissage automatique et IA : IIIT-B et upGrad se sont réunis pour aider les individus à avoir l'opportunité de suivre un cours de 12 mois sur l'apprentissage automatique et l'IA et avoir la chance d'entrer dans cette technologie avec ce cours.
Qu'est-ce que le scraping de données ?
Le grattage des données fait référence à un processus dans lequel un logiciel informatique récupère les données d'une sortie créée par un autre programme. Le grattage Web est un type de grattage de données utilisé pour collecter des données ou des informations à partir de différents sites Web. Dans le web scraping, une application est utilisée pour collecter des informations précieuses à partir d'un site Web. Le programme de grattage Web peut accéder rapidement et facilement au WWW (World Wide Web) à l'aide du protocole HTML (Hypertext Transfer Protocol) ou d'un navigateur Web.
Pourquoi le data scraping est-il nécessaire sur Twitter ?
Le grattage des données sur les réseaux sociaux aide à suivre, évaluer et examiner les données disponibles sur les plateformes. Twitter est la plate-forme la plus populaire, et le grattage des données Twitter aide les utilisateurs à analyser le comportement des utilisateurs, la stratégie de concurrence, l'analyse des sentiments et à rester au courant de ce qui se passe sur le canal social le plus populaire au monde à partir des tweets de personnes, de pairs et d'entreprises qui compte pour vous. Le service de récupération de données de Twitter gère vos besoins de bout en bout en un minimum de temps et vous fournit les données nécessaires. Twitter, par exemple, permet uniquement aux crawlers de collecter des données via son API pour restreindre la quantité d'informations sur leurs utilisateurs et leurs activités.
Que sont les API ?
Les interfaces de programmation d'applications sont les minuscules morceaux de code qui permettent aux appareils numériques, aux logiciels et aux serveurs de données de communiquer entre eux, et ils sont l'épine dorsale vitale de nombreux services sur lesquels nous comptons actuellement. Une API connecte des ordinateurs ou des logiciels les uns aux autres, contrairement à une interface utilisateur, qui connecte un ordinateur à un humain. Il n'est pas conçu pour être utilisé directement par quiconque (l'utilisateur final) autre qu'un programmeur informatique qui l'intègre dans le logiciel. Une API est souvent composée de nombreux composants qui servent d'outils ou de services au programmeur.