Verwenden Sie die OAuth-Authentifizierung, um über Python auf Twitter-Informationen zuzugreifen Tauschen Sie Informationen über die Twitter-API aus.
Unten finden Sie eine Beschreibung und einen Beispielcode.
Twitter verwendet eine Authentifizierungsmethode namens OAuth-Authentifizierung als Authentifizierungsmethode.
Einzelheiten zum Erstellen dieser Schlüssel finden Sie auf der folgenden Seite. Informationen zum Erstellen von vier Authentifizierungsschlüsseln finden Sie hier. [Twitter-Anwendung erstellen](http://website-planner.com/ Twitter-Anwendung erstellen (Consumer-Key, Consumer-Secret, Access-Token, Access-Token-Secret /)
Diesmal erfolgt der Zugriff über die OAuth-Authentifizierungsbibliothek für Python mit dem Namen request-oauthlib.
Führen Sie den folgenden Befehl in der Umgebung "twi-py" aus.
(twi-py)$ pip install requests requests_oauthlib
Funktionsprüfung.
(twi-py)$ python
>>> from requests_oauthlib import OAuth1Session
>>>
OK, wenn kein Fehler auftritt.
Twitter API Grundsätzlich wird die folgende API verwendet, um Twitter-Daten zu erfassen und Informationen aus dem Programm zu senden. https://dev.twitter.com/rest/public
Der Zweck dieser Zeit besteht darin, mit dem angegebenen Schlüsselwort zu suchen und die erforderlichen Informationen zu erhalten. Verwenden Sie GET-Suche / Tweets. https://dev.twitter.com/rest/public/search
tweet_crawler.py Beispielcode eines Programms, das mit dem Hash-Tag "# python" sucht und das Ergebnis ausgibt. Jeder, der Python lesen und schreiben kann, weiß, was er in jeder Funktion tut.
Wenn Sie mit URL, Params, oath.get () / oath.post (), Lassen Sie uns damit spielen, weil es mit anderen Twitter-APIs betrieben werden kann.
#!/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:Das Shannon Lab hält regelmäßig Python-Lernsitzungen im örtlichen Hachioji ab. Programmieranfänger können ebenfalls teilnehmen. Suche nach "Python-Lernsitzung Hachioji". ATND\
Sie können sich von registrieren.#python
created_at: Sun Nov 09 05:09:37 +0000 2014
user_id: 426868502
user_desc:Verändern Sie mit Kreativität Menschen und die Welt. Shannon Lab schafft eine innovative Welt durch die Verschmelzung von Mathematik, künstlicher Intelligenz und Kunst. Programmieren von Lernsitzungen und Android-App-Produkten\
Tweet die Informationen. Derzeit planen wir eine Lernsitzung, um Android-Apps mit Python zu erstellen. Wir suchen einen Praktikanten und einen Ingenieur.
screen_name: shannon_lab
user_name: Shannon Lab
tweet_id: 531253415548944385
text:Wenn man es so betrachtet, kann es für Anfänger sehr sinnvoll sein, es zu üben.
Die Geschichte eines Designers, der Python kennengelernt hat#PyLadiesTokyo by @uniq #python http://t.co/rZMEruT4yf @Von SlideShare
created_at: Sun Nov 09 01:14:19 +0000 2014
user_id: 337419400
user_desc:Täglicher Ingenieur
screen_name: icoxfog417
user_name:Elf
tweet_id: 531247311288946688
text:Die Geschichte eines Designers, der Python kennengelernt hat#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 Wenn Sie die Erläuterungen zu den einzelnen APIs lesen, finden Sie die folgende Beschreibung.
Requests / 15-min window (user auth) 180
Requests / 15-min window (app auth) 450
Dies ist die maximale Häufigkeit, mit der Sie Informationen über die API pro 15 Minuten abrufen können. Der Standardwert ist in diesem Fall 180 mal / 15 min.
Zugriff von nur einem Zugriffstoken und Zugriffstokengeheimnis, Wenn Sie die App-Authentifizierung verwenden, beträgt diese 450 Mal / 15 Minuten.
Details zur App-Authentifizierung werden unter der folgenden URL auf der offiziellen Seite beschrieben. https://dev.twitter.com/oauth/application-only
Sie müssen eine Problemumgehung in Betracht ziehen, da Sie beim Sammeln von Informationen erwischt werden. Grundsätzlich ist es am besten, die Häufigkeit gedrückt zu halten, mit der Sie die Obergrenze nicht erreichen. Wenn Sie in kurzer Zeit mehr Suchergebnisse als das Limit benötigen, erhalten Sie mehrere Twitter-IDs und Wenn der Antwortstatus die Obergrenze des für die OAuth-Authentifizierung erforderlichen Schlüssels erreicht Es gibt eine Möglichkeit, zum nächsten Schlüssel zu wechseln und die Erfassung fortzusetzen (intern handelt es sich um eine Konfiguration mit mehreren Twitter-Anwendungen). Beachten Sie jedoch, dass das Risiko, dass Ihre Konten eingefroren werden, steigt, wenn Sie Ihre Konten zu viel in Massenproduktion herstellen.
Recommended Posts