Qu'est-ce que Twitter: un outil du diable qui enlève un temps précieux à l'humanité
Afin de réduire au maximum le temps que prend Twitter, faisons quelque chose qui n'affiche que les tweets en surbrillance à la fois!
・ Extrayez et affichez uniquement ceux qui ont le plus de favoris de la chronologie Twitter ・ Je voulais connaître les tendances de mes amis, pas les actualités, donc seuls les tweets de followers communs sont affichés.
Nous utilisons quelque chose appelé l'API Twitter.
API : Application Programming Interface
- Une spécification de l'interface utilisée par les composants logiciels pour interagir les uns avec les autres. En termes simples, il s'agit d'une interface configurée pour être plus concise lors de la programmation d'une application, pour vous éviter les problèmes de programmation. * Exposant: Wikipedia "Application Programming Interface"
Je vois, si vous utilisez l'API, vous pouvez faire diverses choses sans écrire beaucoup de code. En particulier, l'API des services Web s'appelle Web API, et il semble qu'il sera possible d'acquérir des données de services Web. (C'est aussi l'API Twitter)
Pour utiliser l'API Twitter, vous devez enregistrer votre compte sur le site des développeurs. https://dev.twitter.com/
Vous pouvez trouver de nombreuses façons de vous inscrire en effectuant une recherche. http://qiita.com/hazigin/items/d9caf26c23c65bd89976 https://syncer.jp/twitter-api-matome http://webnaut.jp/develop/633.html
Si vous donnez un point ・ Il est nécessaire d'enregistrer un numéro de téléphone dans le compte Twitter ・ Il est nécessaire d'enregistrer l'URL du site Web à créer (local est OK pour le moment) Je me sens comme.
Une fois l'inscription terminée · La clé du consommateur ・ Secret du consommateur ・ Ass et Ken ・ Access Token Secret Vous pouvez obtenir 4 clés. Vous êtes maintenant prêt.
Le langage est Python. Il semble y avoir plusieurs façons d'accéder à Twitter depuis Python, mais cette fois j'ai fait référence à ce site.
top_fav_timeline.py
# -*- coding:utf-8 -*-
%matplotlib inline
from requests_oauthlib import OAuth1Session
import json
import datetime
import urllib, cStringIO
from PIL import Image
import matplotlib.pyplot as plt
#Obtenir des jetons
CK = '******************' # Consumer Key
CS = '******************' # Consumer Secret
AT = '******************' # Access Token
AS = '******************' # Accesss Token Secert
#Vous pouvez définir les limites supérieure et inférieure du nombre de tweets lus et du nombre de favos
def top_fav_timeline(count=100, minlim=2, maxlim=30):
"""Affichez ceux avec des abonnés communs et un grand nombre de favos
argument
count:
Nombre d'acquisitions de la chronologie (nombre d'affichages différents)
!! Peut-être à cause de la limite supérieure de l'acquisition des informations de suivi, si vous la rendez trop grande, cela ne fonctionnera pas!
minlim, maxlim:
Limite inférieure du nombre de favos
"""
#Obtenir la clé
twitter = OAuth1Session(CK,CS,AT,AS)
#Obtenir la chronologie
url_timeline = "https://api.twitter.com/1.1/statuses/home_timeline.json"
#Paramétrage, spécifiez ici le nombre d'acquisitions de la timeline
params_timeline = {'count':count}
#OBTENIR la chronologie avec OAuth
req_timeline = twitter.get(url_timeline, params = params_timeline)
if req_timeline.status_code == 200:
#La réponse étant au format JSON, analysez-la
timeline = json.loads(req_timeline.text)
#utilisateur de la chronologie_obtenir le nom
test = []
for i in range(len(timeline)):
test.append(timeline[i]["user"]["screen_name"])
test_s = ','.join(test)
params_friend = {'screen_name':test_s}
#Obtenez le statut des utilisateurs et des abonnés sur la chronologie
url_friend = "https://api.twitter.com/1.1/friendships/lookup.json"
req_friend = twitter.get(url_friend, params = params_friend)
friend_test = json.loads(req_friend.text)
if req_friend.status_code == 200:
#Accédez à chaque donnée de tweet acquise par chronologie
for tweet in timeline:
#Obtenez le statut d'abonné des utilisateurs tweetés
for i in range(len(friend_test)):
if friend_test[i]['screen_name'] == tweet["user"]["screen_name"]:
test_num = i
#Si l'utilisateur tweetant est un suiveur mutuel, il sera affiché dans la chronologie
if u'followed_by' in friend_test[test_num]['connections']:
# favorite_Afficher le nombre au-dessus du seuil
if tweet["favorite_count"] >= minlim and tweet["favorite_count"] <= maxlim:
#Affichage de l'image
file = cStringIO.StringIO(urllib.urlopen(tweet["user"]["profile_image_url_https"]).read())
img = Image.open(file)
#plt options divers paramètres
plt.figure(figsize=(0.5,0.5)) #Taille
plt.axis('off') #Masquer la ligne mémoire
plt.imshow(img)
plt.show()
#Convertir l'heure du tweet en type datetime et la convertir en heure japonaise
dst = datetime.datetime.strptime(tweet["created_at"],'%a %b %d %H:%M:%S +0000 %Y') + datetime.timedelta(hours=9)
#Afficher sur la chronologie
print dst
print tweet["user"]["name"] + " / @" + tweet["user"]["screen_name"]
print tweet["text"]
print '★:' + str(tweet["favorite_count"])
print '-------'
else:
#Si la chronologie n'a pas pu être obtenue
print ("Error: %d" % req.status_code)
C'est fait. C'est plein de pour et si et ça fait mal. Depuis que je l'ai écrit dans Juyter Notebook,% matplotlib inline est au début.
Quand tu cours · Image de profil ・ Heure du Tweet ・ Id et nom d'affichage ・ Texte du Tweet ・ Nombre de favos Est imprimé. Il était difficile de récupérer le nom de l'écran de la chronologie à l'avance afin de ne pas faire plusieurs demandes, et d'accéder à l'URL de l'image pour afficher l'image de profil et extraire l'image directement de la ligne et l'afficher sur le jupyter. ..
Cette fois, nous avons sélectionné et affiché des tweets de suivi mutuel, mais si vous modifiez un peu les conditions, vous devriez pouvoir afficher uniquement les tweets de suivi mutuel "pas". Cela peut être utile pour rechercher des actualités souvent favorisées.
Vous pouvez obtenir les informations des tweets sur la chronologie avec GET statuses / home_timeline, mais je pense que vous pouvez faire différentes choses car vous pouvez obtenir diverses informations telles que le corps du tweet, l'image du profil, l'heure du tweet et l'utilisateur qui a tweeté. ..
Profitons de Twitter!
Twitter API TIPS https://dev.twitter.com/rest/public
Accéder à l'API Twitter avec Python http://qiita.com/yubais/items/dd143fe608ccad8e9f85
De nombreuses clés OAuth apparaîtront, mais j'ai essayé de résumer chaque rôle http://d.hatena.ne.jp/mabots/20100615/1276583402
Pour convertir une date de chaîne en date / heure en Python. http://loumo.jp/wp/archive/20110408215311/
Recommended Posts