Afin d'en apprendre davantage sur l'exploration et la gestion des API, j'ai décidé de créer un outil d'exploration pour Twitter.
L'environnement de ce développement est le suivant.
MacBook Air (Retina, 13-inch, 2018) Processeur Intel Core i5 1,6 GHz Mémoire 8 Go 2133 MHz LPDDR3
Pour installer l'API, suivez les étapes ci-dessous.
Tout d'abord, obtenez votre clé API Twitter sur ce site Twitter Developers Après vous être connecté avec le compte pour lequel vous souhaitez obtenir la clé API, cliquez sur Créer une application, puis appuyez sur Approuver. Après cela, on vous posera diverses questions, mais je vais y répondre de manière appropriée. Ensuite, vous obtiendrez les quatre clés API suivantes.
Consumer Key Consumer Secret Key Access Token Access Secret Token
Nous allons implémenter le robot pour qu'il puisse également être utilisé comme module Tout d'abord, créez le config.py suivant
config.py
Consumer_Key = "Comsumer Key"
Consumer_Secret_Key = "Consumer Secret Key"
Access_Token = "Access Token"
Access_Secret_Token = "Access Secret Token"
Ensuite, créez un fichier vide appelé __init __. Py
__init__.py
Ensuite, en utilisant ces fichiers, nous implémenterons le robot d'exploration. Le nom du fichier du robot à implémenter est tweet_butler.py. Créez-le dans la même hiérarchie que le fichier config.py et implémentez-le.
import
tweet_butler.py
from . import config
from requests_oauthlib import OAuth1Session
import json
Veuillez noter que la partie from .import config
est importée avec un chemin relatif, et s'il n'y a pas de fichier __init __. Py
, une erreur d'importation se produira.
Le fichier config.py est requis pour utiliser la clé API, et la bibliothèque requests_oauthlib est requise pour l'authentification OAuth. De plus, puisque la réponse de l'API est renvoyée sous forme de fichier json, importez également la bibliothèque json.
Ensuite, recherchez à l'aide de l'API.
tweet_butler.py
CK = config.Consumer_Key
CS = config.Consumer_Secret_Key
AT = config.Access_Token
AS = config.Access_Secret_Token
twitter = OAuth1Session(CK, CS, AT, AS)
params = { q : "Rechercher un mot" }
res = twitter.get(url, params = params)
Vous obtiendrez maintenant la réponse de l'API. Assurez-vous ensuite que le code d'état est 200, puis récupérez le texte au format json.
if res.status_code == 200:
search_result = json.loads(res.text)
Nous voulons effectuer ces opérations en tant que classe, nous allons donc préparer une nouvelle classe Butler.
tweet_butler.py
class Butler:
def __init__(self,setting = config):
self.api = OAuth1Session(setting.Consumer_Key, setting.Consumer_Secret_Key, setting.Access_Token, setting.Access_Secret_Token)
self.search_url = "https://api.twitter.com/1.1/search/tweets.json"
def search(self,word,count=10):
params = {"q":word,"count":count}
res = self.api.get(self.search_url, params = params)
if res.status_code == 200:
search_results = json.loads(res.text)
tweets = [Tweet(result) for result in search_results["statuses"]]
return tweets
Lors de la réception des résultats de la recherche, il existe un code appelé tweet (result)
, mais comme il est difficile de gérer les tweets au format dictionnaire, nous créons une classe de tweet séparée et lui passons un tableau de type dictionnaire.
tweet_butler.py
class Tweet:
def __init__(self,tweet):
self.dict = tweet
self.tweet_id = tweet["id"]
self.user_id = tweet["user"]["id"]
self.user_name = tweet["user"]["screen_name"]
self.text = tweet["text"]
self.created_at = tweet["created_at"]
self.favorite_count = tweet["favorite_count"]
self.hashtags = tweet["entities"]["hashtags"]
self.symbols = tweet["entities"]["symbols"]
self.mention = tweet["entities"]["user_mentions"]
def get_text(self):
return self.text
À ce stade, nous n'avons besoin que du texte du tweet, nous simplifions donc la classe tweet. Vous pouvez maintenant obtenir le texte en faisant get_text sur la liste des tweets reçus du majordome.
Ensuite, je voudrais ajouter une fonction pour rechercher le profil de l'utilisateur dans Batler et créer une classe pour l'utilisateur.
[Création d'un robot d'exploration à l'aide de l'API Twitter](https://datumstudio.jp/blog/twitterapi%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%AF % E3% 83% AD% E3% 83% BC% E3% 83% A9% E3% 83% BC% E4% BD% 9C% E6% 88% 90) twitter developer
Recommended Posts