Collecter des informations sur Twitter avec Python (API Twitter)

Accéder aux informations Twitter depuis Python

Utilisez l'authentification OAuth pour accéder aux informations Twitter à partir de Python Échangez des informations via l'API Twitter.

Vous trouverez ci-dessous une description et un exemple de code.

Créer une clé d'authentification pour votre application Twitter

Twitter utilise une méthode d'authentification appelée authentification OAuth comme méthode d'authentification.

Les détails sur la façon de les créer sont décrits sur la page suivante, donc référez-vous ici pour créer quatre clés d'authentification. [Création d'une application Twitter](http://website-planner.com/ Création d'une application Twitter (clé-consommateur, secret-consommateur, jeton d'accès, secret-jeton d'accès /)

Installation de la bibliothèque Python pour l'authentification OAuth

Cette fois, l'accès est effectué à l'aide de la bibliothèque d'authentification OAuth pour Python appelée requests-oauthlib.

Exécutez la commande suivante sous l'environnement twi-py.

(twi-py)$ pip install requests requests_oauthlib

Contrôle de fonctionnement.

(twi-py)$ python
>>> from requests_oauthlib import OAuth1Session
>>>

OK si aucune erreur ne se produit.

Twitter API Fondamentalement, l'API suivante est utilisée pour acquérir des données Twitter et envoyer des informations à partir du programme. https://dev.twitter.com/rest/public

Le but de ce temps est de rechercher avec le mot-clé spécifié et d'obtenir les informations nécessaires. Utilisez GET search / tweets. https://dev.twitter.com/rest/public/search

Exemple de code utilisant l'API de recherche Twitter

tweet_crawler.py Exemple de code d'un programme qui recherche avec la balise de hachage de # python et affiche le résultat. Quiconque sait lire et écrire Python saura ce qu'il fait dans chaque fonction.

En gros, si vous jouez avec url, params, oath.get () / oath.post (), Jouons avec, car il peut être exploité à l'aide d'autres API Twitter.

#!/usr/bin/env python                                                                                                                                             
# -*- coding:utf-8 -*-                                                                                                                                            

from requests_oauthlib import OAuth1Session
import json

### Constants                                                                                                                                                     
oath_key_dict = {
    "consumer_key": "xxxxxxxxxxxxxxxxxxxx",
    "consumer_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "access_token_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

### Functions                                                                                                                                                     
def main():
    tweets = tweet_search("#python", oath_key_dict)
    for tweet in tweets["statuses"]:
	tweet_id = tweet[u'id_str']
        text = tweet[u'text']
        created_at = tweet[u'created_at']
        user_id = tweet[u'user'][u'id_str']
	user_description = tweet[u'user'][u'description']
	screen_name = tweet[u'user'][u'screen_name']
	user_name = tweet[u'user'][u'name']
	print "tweet_id:", tweet_id
	print "text:", text
	print "created_at:", created_at
	print "user_id:", user_id
	print "user_desc:", user_description
	print "screen_name:", screen_name
	print "user_name:", user_name
    return


def create_oath_session(oath_key_dict):
    oath = OAuth1Session(
	oath_key_dict["consumer_key"],
	oath_key_dict["consumer_secret"],
	oath_key_dict["access_token"],
	oath_key_dict["access_token_secret"]
	)
    return oath

def tweet_search(search_word, oath_key_dict):
    url = "https://api.twitter.com/1.1/search/tweets.json?"
    params = {
        "q": unicode(search_word),
        "lang": "ja",
        "result_type": "recent",
        "count": "15"
        }
    oath = create_oath_session(oath_key_dict)
    responce = oath.get(url, params = params)
    if responce.status_code != 200:
        print "Error code: %d" %(responce.status_code)
        return None
    tweets = json.loads(responce.text)
    return tweets

### Execute                                                                                                                                                       
if __name__ == "__main__":
    main()

Exemple de sortie

(twi-py)$ python tweet_crawler.py
tweet_id: 531312631831732225
text:Shannon Lab organise régulièrement des sessions d'étude sur les python au Hachioji local. Les débutants de la programmation peuvent également participer. Recherchez "Session d'étude Python Hachioji". ATND\
Vous pouvez vous inscrire à partir de.#python
created_at: Sun Nov 09 05:09:37 +0000 2014
user_id: 426868502
user_desc:Avec créativité, changez les gens et le monde. Shannon Lab crée un monde innovant grâce à la fusion des mathématiques, de l'intelligence artificielle et de l'art. Programmation de sessions d'étude et de produits d'application Android\
Tweetez les informations. Actuellement, nous prévoyons une session d'étude pour créer des applications Android avec Python. Nous recherchons un stagiaire et un ingénieur.
screen_name: shannon_lab
user_name: Shannon Lab
tweet_id: 531253415548944385
text:En regardant cela comme ça, la pratique pour les débutants peut être assez significative.
L'histoire d'un designer qui a rencontré Python#PyLadiesTokyo by @uniq #python http://t.co/rZMEruT4yf @Chez SlideShare
created_at: Sun Nov 09 01:14:19 +0000 2014
user_id: 337419400
user_desc:Ingénieur du quotidien
screen_name: icoxfog417
user_name:Lutin
tweet_id: 531247311288946688
text:L'histoire d'un designer qui a rencontré Python#PyLadiesTokyo by @uniq #python http://t.co/MwMFS5IFQ1 null
created_at: Sun Nov 09 00:50:03 +0000 2014
user_id: 1497018468
user_desc: Software Engineer
.NET/C#/HTML5/CSS3/JavaScript/jQuery/Perl/Ruby/Python
screen_name: teruru2013
user_name:Teru
... 

Parler des restrictions de l'API Twitter

https://dev.twitter.com/rest/public Si vous lisez l'explication de chaque API, vous trouverez la description suivante.

Requests / 15-min window (user auth)  180
Requests / 15-min window (app auth)   450

Il s'agit du nombre maximal de fois où vous pouvez obtenir des informations à l'aide de l'API toutes les 15 minutes. La valeur par défaut est 180 fois / 15 min dans ce cas.

Accès à partir d'un seul jeton d'accès et secret de jeton d'accès, Si vous utilisez l'authentification de l'application, ce sera 450 fois / 15 min.

Les détails de l'authentification de l'application sont décrits à l'URL suivante sur la page officielle. https://dev.twitter.com/oauth/application-only

Vous devez envisager une solution de contournement, car vous serez pris dès que vous collecterez des informations. Fondamentalement, il est préférable de maintenir le nombre de fois où vous n'atteignez pas la limite supérieure, Si vous avez besoin de plus de résultats de recherche que la limite en peu de temps, obtenez plusieurs identifiants Twitter et Lorsque l'état de la réponse atteint la limite supérieure de la clé requise pour l'authentification OAuth Il existe un moyen de passer à la clé suivante et de poursuivre l'acquisition (en interne, il s'agit d'une configuration d'applications Twitter multiples). Cependant, sachez que si vous produisez trop vos comptes en masse, le risque que vos comptes soient gelés augmente.

Recommended Posts

Collecter des informations sur Twitter avec Python (API Twitter)
Collecter des informations depuis Twitter avec Python (construction de l'environnement)
Collecte d'informations sur Twitter avec Python (analyse morphologique avec MeCab)
Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Utiliser l'API Twitter avec Python
Tweet de python avec Twitter Developer + Tweepy
Publier à partir d'un autre compte avec l'API Twitter
[Python] Obtenez des informations sur le package Python avec l'API PyPI
Collecter des tweets avec Python
Utiliser l'API Trello avec python
Mémo graphique Twitter avec Python
Obtenez la chronologie Twitter avec Python
Informations obtenues à partir de tweet_id (Python)
Obtenir le calendrier de l'API Garoon SOAP avec Python + Zeep
Obtenir des informations avec l'API Zabbix
API Web avec Python + Falcon
Exploration avec Python et Twitter API 1 - Fonction de recherche simple
Soutenez-vous avec l'API Twitter
Appelez l'API avec python3.
Rechercher des tweets Twitter avec Python
Utiliser l'API subsonique avec python3
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
[Bases de la science des données] Collecte de données depuis RSS avec python
Avec skype, notifiez avec skype de python!
Update_with_media réussi avec l'API Twitter
Utilisez l'API e-Stat de Python
Obtenez des informations sur l'alambic 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)
Rationalisez la collecte d'informations avec l'API Twitter et les robots Slack
Obtenez des données de l'API d'analyse avec le client API Google pour python
Appeler C depuis Python avec DragonFFI
Créer Awaitable avec l'API Python / C
Utilisation de Rstan de Python avec PypeR
Obtenez des avis avec l'API googlemap de python
Installez Python à partir des sources avec Ansible
Exécutez Rotrics DexArm avec l'API Python
[Lambda] [Python] Publier sur Twitter depuis Lambda!
Quine Post avec l'API Qiita (Python)
Accédez à l'API Etherpad-lite avec Python
Publiez plusieurs images Twitter avec python
Exécutez Aprili depuis Python sur Orange
Utilisez l'API kabu Station® de Python
Utilisez l'API Flickr de Python
python Obtenez la météo à venir de l'API météo
Appelez python de nim avec Nimpy
Publiez facilement sur Twitter avec Python 3
Exécutez Ansible à partir de Python à l'aide de l'API
Charger fbx depuis python avec cinema4d
Accéder à l'API Twitter avec Python
Obtenez des informations météorologiques avec Python et le grattage
Utiliser l'API Google Analytics de Python
Gérer l'API SOAP depuis Python (Zeep)
[Memo] Tweet sur Twitter avec Python
[Python] Informations sur les lentilles de grattage sur price.com
Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs