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.
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 /)
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
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()
(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
...
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