Exploration avec Python et Twitter API 1 - Fonction de recherche simple

Motivation

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.

environnement

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

Procédure d'installation de l'API

Pour installer l'API, suivez les étapes ci-dessous.

  1. Obtenez la clé API Twitter
  2. Montage sur chenilles

1. Obtenez la clé API Twitter

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

2. Montage sur chenilles

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.

Cours de majordome

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.

Classe de Tweet

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.

Continuer

Ensuite, je voudrais ajouter une fonction pour rechercher le profil de l'utilisateur dans Batler et créer une classe pour l'utilisateur.

référence

[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

Exploration avec Python et Twitter API 1 - Fonction de recherche simple
Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs
Rechercher des tweets Twitter avec Python
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)
Collecter des informations sur Twitter avec Python (API Twitter)
Client API Slack simple réalisé avec Python
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
Recherche séquentielle avec Python
Dichotomie avec python
Dichotomie avec Python 3
Rechercher sur Twitter avec Python
Automatisez les tests d'interface utilisateur avec l'API Selenium | Exploration de sites Web avec python
Essayez de créer un jeu simple avec Python 3 et iPhone
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
[Vagrant] Configurer un serveur API simple avec python
Client de publication Twitter créé avec Flask avec une fonction de connexion simple
Effectuez une recherche Twitter à partir de Python et essayez de générer des phrases avec la chaîne de Markov.
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Utiliser l'API Trello avec python
Python et matériel - Utilisation de RS232C avec Python -
Mémo graphique Twitter avec Python
Recherche de bits complète avec Python
Soutenez-vous avec l'API Twitter
Appelez l'API avec python3.
python avec pyenv et venv
Les moteurs de recherche fonctionnent avec python
Utiliser l'API subsonique avec python3
[Python] Recherche de priorité de profondeur et recherche de priorité de largeur
Update_with_media réussi avec l'API Twitter
Rationalisez la recherche Web avec Python
Fonctionne avec Python et R
API Nifty Cloud facile à utiliser avec botocore et python
Essayez Amazon Simple Workflow Service (SWF) avec Python et boto3
Résolution avec Ruby et Python AtCoder ABC151 D Recherche de priorité de largeur
Création d'un outil de vente simple avec Python GUI: recherche de numéro d'employé
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
Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Regroupez et analysez les prix des produits à l'aide de l'API Rakuten Product Search [Python]
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
J'ai fait un circuit simple avec Python (AND, OR, NOR, etc.)
Faites fonctionner Jupyter avec l'API REST pour extraire et enregistrer le code Python
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
Scraping avec Node, Ruby et Python
Obtenez des avis avec l'API googlemap de python
Exécutez Rotrics DexArm avec l'API Python
Grattage avec Python, Selenium et Chromedriver