Sammeln von Informationen von Twitter mit Python (Twitter API)

Greifen Sie über Python auf Twitter-Informationen zu

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.

Erstellen eines Authentifizierungsschlüssels für Ihre Twitter-Anwendung

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

Installation der Python-Bibliothek für die OAuth-Authentifizierung

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

Beispielcode mit der Twitter-Such-API

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

Ausgabebeispiel

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

Apropos Einschränkungen der Twitter-API

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

Sammeln von Informationen von Twitter mit Python (Twitter API)
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)
Sammeln von Informationen von Twitter mit Python (morphologische Analyse mit MeCab)
Sammeln von Informationen von Twitter mit Python (Integration von MySQL und Python)
Verwenden Sie die Twitter-API mit Python
Tweet von Python mit Twitter Developer + Tweepy
Poste von einem anderen Konto mit Twitter API
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Tweets mit Python sammeln
Verwenden Sie die Trello-API mit Python
Twitter-Grafiknotiz mit Python
Holen Sie sich Twitter-Timeline mit Python
Informationen von tweet_id (Python)
Holen Sie sich mit Python + Zeep einen Zeitplan von der Garoon SOAP API
Informationen erhalten Sie mit zabbix api
Web-API mit Python + Falcon
Crawlen mit Python und Twitter API 1-Einfache Suchfunktion
Unterstützen Sie sich mit der Twitter API
Rufen Sie die API mit python3 auf.
Suche nach Twitter-Tweets mit Python
Verwenden Sie die Unterschall-API mit Python3
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python
Mit Skype benachrichtigen Sie mit Skype von Python!
Erfolgreiches update_with_media mit Twitter API
Verwenden Sie die e-Stat-API von Python
Holen Sie sich Alembic-Informationen mit Python
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Optimieren Sie das Sammeln von Informationen mit Twitter API und Slack Bots
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Rufen Sie C von Python mit DragonFFI auf
Erstellen Sie Awaitable mit der Python / C-API
Verwenden von Rstan aus Python mit PypeR
Holen Sie sich Bewertungen mit Python Googlemap API
Installieren Sie Python von der Quelle mit Ansible
Führen Sie Rotrics DexArm mit der Python-API aus
[Lambda] [Python] Von Lambda auf Twitter posten!
Quine Post mit Qiita API (Python)
Klicken Sie mit Python auf die Etherpad-Lite-API
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Führen Sie Aprili von Python auf Orange aus
Verwenden Sie die kabu Station® API von Python
Verwenden Sie die Flickr-API von Python
Python Holen Sie sich das kommende Wetter von der Wetter-API
Rufen Sie Python von Nim mit Nimpy auf
Mit Python 3 einfach auf Twitter posten
Führen Sie Ansible über Python mithilfe der API aus
Laden Sie fbx aus Python mitinema4d
Greifen Sie mit Python auf die Twitter-API zu
Holen Sie sich Wetterinformationen mit Python & Scraping
Verwenden Sie die Google Analytics-API von Python
Behandeln Sie die SOAP-API von Python (Zeep)
[Memo] Tweet auf Twitter mit Python
[Python] Informationen zu Scraping-Objektiven von price.com
Crawlen mit Python und Twitter API 2-Implementierung der Benutzersuchfunktion