[PYTHON] Obtenez l'historique des tweets de célébrités sur Twitter

Le mur que j'ai immédiatement rencontré lorsque j'ai voulu utiliser la perspicacité de la personnalité d'IBM cloud. Un mémorandum à l'époque.

difficulté

Une phrase de 3000 mots ou plus est requise (ou plutôt souhaitable). Alors j'emprunte un tweet de célébrité à Twitter. On considère qu'il y a environ 15 mots par tweet, et 200 tweets sont acquis par personne.

Cependant, en tant que prémisse majeure, il est nécessaire d'enregistrer l'API Twitter. J'ai déjà fait une demande d'inscription, je vais donc omettre cette procédure ici.

Méthode de mise en œuvre

 -*- coding:utf-8 -*-

import tweepy
import re
import subprocess

# Liste d'utilisateur
import user_list
# Clé d'authentification API Twitter
# Access_token, Access_secret, Consumer_key, Consumer_secret
from auth import twitter_credentials as tc


def get_twitterdata(username, rfile):

 #Lire la clé d'authentification, les paramètres de l'API
  auth = tweepy.OAuthHandler(tc.Consumer_key, tc.Consumer_secret)
  auth.set_access_token(tc.Access_token, tc.Access_secret)
  api = tweepy.API(auth, wait_on_rate_limit = True)

 #List pour stocker les tweets
  tweets_data =[]
 Obtenez des données jusqu'à # 200 tweet
  for tweet in api.user_timeline(screen_name=username, count=200):
 # Obtenir le texte du tweet
    tmp_text=tweet.text
 # Les sauts de ligne continus sont combinés en un
    tmp_text=re.sub('\n+','\n',tmp_text)
 #Ajouter un tweet à la liste
    tweets_data.append(tmp_text + '\n')

 # Sortie de fichier
  with open(rfile, "w",encoding="utf-8") as wf:
    wf.writelines(tweets_data)


if __name__ == '__main__':

 Obtenez votre nom d'utilisateur #twitter
  userlist=user_list.username

  for i in range(0,len(userlist)):
    username = userlist[i]
    rfile = "./data/tweet_"+str(i).zfill(3)+".csv"

    try:
      get_twitterdata(username, rfile)
 # Génère un fichier vide s'il ne peut pas être obtenu, par exemple lorsqu'il est défini sur privé
    except:
      subprocess.run(["touch",rfile])

Exemple de liste d'utilisateurs

C'est fou, mais le nom de la personne est caché. username=[ "ariyoshihiroiki", "matsu_bouzu", "takapon_jp" ]

résultat

La description est omise car elle peut être protégée par des droits d'auteur. tweet_000.csv tweet_001.csv tweet_002.csv Peut être fait.

Épilogue

La quantité de données pouvant être acquises toutes les 15 minutes (?) Étant limitée, si vous êtes gourmand, vous devrez attendre longtemps. Vous pouvez également exclure les retweets et autres non-textes de la personne en question.

Recommended Posts

Obtenez l'historique des tweets de célébrités sur Twitter
Obtenez des données de Twitter avec Tweepy
Obtenez des informations sur les retards sur Twitter et tweet
Obtenez des images par recherche par mot-clé sur Twitter
Tweet de python avec Twitter Developer + Tweepy
Obtenez des images d'utilisateurs spécifiques sur Twitter
Obtenir l'historique des métriques de MLflow en Python
Obtenir les données utilisateur Twitter
[Python] Obtenez un an d'historique des messages de Slack
Tweet d'AWS Lambda
Créer un diagramme de corrélation à partir de l'historique des conversations de Twitter
Obtenir les données structurelles de CHEMBLID
Obtenez la chronologie Twitter avec Python
Publier Twitter depuis la ligne de commande
Obtenir le presse-papiers à partir des paramètres Maya