Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs

Que faire cette fois

Jusqu'à la dernière fois, nous avons implémenté la classe Butler pour une recherche simple de tweets et la classe Tweet pour gérer les tweets. Cette fois, je voudrais implémenter la fonction pour rechercher User et la classe User dans la classe Butler.

Mise en œuvre jusqu'à la dernière fois

Je vais d'abord mettre le code à la dernière fois.

tweet_butler.py


from . import config
from requests_oauthlib import OAuth1Session
import json

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

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

Méthode de recherche d'utilisateurs

Vous pouvez rechercher l'API simplement en envoyant une requête GET à une URL. Il semble y avoir les trois méthodes suivantes lors de la recherche d'utilisateurs. ・ Utilisateurs / recherche ・ Utilisateurs / recherche ・ Utilisateurs / spectacle la recherche consiste à rechercher les utilisateurs qui ont frappé un certain mot, show doit afficher un seul utilisateur avec le même identifiant et le même nom d'écran, la recherche est étendue à plusieurs personnes dans l'émission et elle est répertoriée dans id et screen_name. Peut être entré. Aucun d'entre eux n'est difficile à implémenter, mais cette fois, nous utiliserons d'abord show.

Implémentation de la fonction de recherche d'utilisateurs

La première chose dont vous avez besoin est un jeton API. Cela a été expliqué la dernière fois, je vais donc l'omettre. Exploration avec Python et Twitter API 1 - Fonction de recherche simple

Vient ensuite l'URL de la ressource pour les utilisateurs / show.  https://api.twitter.com/1.1/users/show.json Vous devez également connaître les fichiers json que vous lancez dans cette API à implémenter.


{
  "Name": "name",
  "user_id": "id",
  "screen_name": "screen_name",
  "include_entities": "include_entities",
}

Les quatre éléments ci-dessus sont les éléments qui peuvent être utilisés comme entrée pour le fichier json. Parmi ceux-ci, l'un des "Name, user_id, screen_name" est toujours requis.

Le reste est la mise en œuvre. Ce n'est pas très différent de la dernière fois. Implémenter en tant que méthode de la classe Butler. Butler.get_user_by_id() Tout d'abord, c'est une méthode pour obtenir l'utilisateur à partir de l'ID en utilisant showAPI.

tweet_butler.py


class Butler:
    def __init__(self, setting = config):
        self.get_user_url = "https://api.twitter.com/1.1/users/show.json"
              :
              :

    def get_user_by_id(self, id):
        params = {"user_id":user_id}
        res = self.api.get(self.get_user_url, params = params)
        if res.status_code == 200:
            search_results = json.loads(res.text)
        else:
            assert False, "{} error happen in get_user_by_id method".format(res.status_code)
        return User(search_results)

Butler.get_user_by_name Vient ensuite la méthode pour obtenir l'utilisateur de screen_name. L'API utilisée est la même

tweet_butler.py


        :
        :
def get_user_by_name(self,name):
        params = "Name":name}
        res = self.api.get(self.get_user_url, params =params)
        if res.status_code == 200:
            search_results = json.loads(res.text)
        else:
            assert False, "{} error happen in get_user_by_name method".format(res.status_code)
        return User(search_results)

Implémentation de la classe utilisateur

Cette fois, je ne mettrai pas grand chose sur la classe User.

tweet_butler.py



class User:
    def __init__(self, user_dict):
        self.dict = user_dict
        self.id = user_dict["id"]
        self.name = user_dict["name"]
        self.screen_name = user_dict["screen_name"]

Je suis désolé pour l'omission.

Améliorations de la classe Tweet

Il semble que l'objet utilisateur soit inclus dans l'objet tweet renvoyé dans la réponse, alors ajoutez une nouvelle méthode get_user en tant que méthode de la classe Tweet. J'ai également changé certains des noms de variables de classe.

tweet_butler.py


class Tweet:
    def __init__(self,tweet):
        self.dict = tweet
        self.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
    
##########La partie ci-dessous vient d'être ajoutée###########
    def get_user(self):
        return User(self.dict["user"])


Continuer

Ensuite, je voudrais permettre la recherche d'utilisateurs à l'aide de l'API users / search et pouvoir récupérer les tweets d'un utilisateur spécifique.

référence

Obtenez des tweets d'utilisateurs spécifiques sur Twitter twitter developer

Recommended Posts

Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs
Exploration avec Python et Twitter API 1 - Fonction de recherche simple
Implémentation de l'arbre TRIE avec Python et LOUDS
Utiliser l'API Twitter avec Python
Rechercher des tweets Twitter avec Python
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
Construisez un serveur API pour vérifier le fonctionnement de l'implémentation frontale avec python3 et Flask
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
J'ai essayé la gestion du suivi avec l'API Twitter et Python (facile)
Introduction et mise en œuvre de la fonction d'activation
Implémentation de la méthode Dyxtra par python
Coexistence de Python2 et 3 avec CircleCI (1.0)
Implémentation de CRUD à l'aide de l'API REST avec Python + Django Rest framework + igGrid
Collecter des informations sur Twitter avec Python (API Twitter)
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
[Unity (C #), Python] Mémo d'étude de communication API ③ Implémentation de la fonction de connexion simplifiée
Rechercher et télécharger automatiquement des vidéos YouTube avec Python
Raisonnement causal et recherche causale par Python (pour les débutants)
J'ai essayé la synthèse de fonctions et le curry avec python
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail
Poursuite du développement multi-plateforme avec Electron et Python
Explication de la distance d'édition et de l'implémentation en Python
Exemple de lecture et d'écriture de CSV avec Python
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3
Recherche séquentielle avec Python
Automatisez les tests d'interface utilisateur avec l'API Selenium | Exploration de sites Web avec python
Obtenez une grande quantité de données Twitter de Starba avec python et essayez l'analyse de données Partie 1
[Python of Hikari-] Chapitre 06-02 Fonction (argument et valeur de retour 1)
Effectuez une recherche Twitter à partir de Python et essayez de générer des phrases avec la chaîne de Markov.
Téléchargez facilement et partiellement mp4 avec python et youtube-dl!
[# 2] Créez Minecraft avec Python. ~ Dessin du modèle et implémentation du lecteur ~
Visualisez la gamme d'insertions internes et externes avec python
Suivi automatique sur Twitter avec python et sélénium! (RPA)
Deuxième moitié de la première journée d'étude de Python Essayez d'utiliser l'API Twitter avec Bottle
Dichotomie avec python
Dichotomie avec Python 3
Rechercher sur Twitter avec Python
Recherchez et enregistrez l'image de Tomono Kafu depuis Twitter
Comparaison de CoffeeScript avec la grammaire JavaScript, Python et Ruby
Gestion des versions de Node, Ruby et Python avec anyenv
[Bibliothèque de graphiques Python Seaborn] À propos de l'utilisateur Avertissement de axes.color_cycle est obsolète et remplacé par axes.prop_cycle
API Nifty Cloud facile à utiliser avec botocore et python
Implémentation Python du mode de fusion CSS3 et discussion sur l'espace colorimétrique
Effectuer une analyse isocurrent des canaux en eau libre avec Python et matplotlib
Résolution avec Ruby et Python AtCoder ABC151 D Recherche de priorité de largeur
Associez Python Enum à une fonction pour la rendre appelable
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
Débarrassez-vous des données sales avec Python et les expressions régulières
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Rationalisez la collecte d'informations avec l'API Twitter et les robots Slack
Exploration Web, scraping Web, acquisition de caractères et sauvegarde d'image avec python
[Avec une explication simple] Implémentation Scratch d'une machine Boltsman profonde avec Python ②
[Avec une explication simple] Implémentation Scratch d'une machine Boltzmann profonde avec Python ①
Les débutants de l'API Google Maps et de l'API Twitter ont créé "Tweet Map"
Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Exemple d'analyse HTTP GET et JSON avec Pepper Python
Jouez avec le mécanisme de mot de passe de GitHub Webhook et Python
Regroupez et analysez les prix des produits à l'aide de l'API Rakuten Product Search [Python]
Programmation avec Python et Tkinter