【Python】TwitterのStream APIにてデータ収集

Python】TwitterのStream APIにてデータ収集 1 728x401 - 【Python】TwitterのStream APIにてデータ収集
nomagram - 【Python】TwitterのStream APIにてデータ収集

1. Twiiter Stream APIについて

REST APIについては仕事上で利用することは多いですが、Streaming APIを利用することは初めてなので少しワクワクしてます!

さて、Streaming APIはざっくり言うとある条件でヒットさせた場合に、通知を待っているクライアントに対してプッシュ通知を一斉配信する仕組みです。プッシュ通知とは、サーバで発生したイベントをキッカケとして、クライアントからの要求なしに情報を送信することができる技術のことです。

 

Twitterでは以下のStreaming APIが用意されています。

● Public streams
Twitter上で流れる公開データのストリームのこと。特定のユーザやトピックをフォローしたり、データマイニングに適しています。

● User streams
ユーザ1人のストリームのこと。Twitterのシングルユーザビューで参照できるほぼ全てのデータを網羅する。

● Sites streams
ユーザストリームのマルチユーザ版。サイトストリームは、多くのユーザに代わってTwitterに接続しなければならないサーバを対象としている。

 

ぶっちゃけ記載していてうまく理解できていない私がいますが、そこは利用時にしっかり調査すればよし!!

と言うことで、今回はPublic streamsであるAPIを利用します。

 

2. プログラムの概要

 

今回のプログラムの流れです。

1. 必要なモジュールをインポート
2. Twitter APIを実行するために必要な変数用意
3. StreamListenerを継承するクラスを作成
4. Twitterオブジェクトの生成
5. Listenerクラスのインスタンス生成
6. 指定の検索ワードをフィルタして受信開始

 

上記の流れでプログラムを作成していきます。

 

1. 必要なモジュールをインポート

 

 

1では、tweepyとtimedeltaをインポートします。timedeltaはツイートの時間を日本時間に直すために利用します。

 

2. Twitter APIを実行するために必要な変数用意

 

 

各種キーの値は、作成したtwitter開発者ページから取得したキーを代入します。
参考ページ:【Python】twitter APIを使用するための各種キーを取得する手順

 

3. StreamListenerを継承するクラスを作成

 

 

3では、StreamListenerを継承するクラスListenerを作成します。

 

4. Twitterオブジェクトの生成

 

 

4では、OAuthHandlerインスタンス(auth)に、”Consumer Key”, “Consumer Secret”をセットします。
セットが終わったあとは、auth.set_access_tokenに、”Access Token”, “Accesss Token Secert”をセットします。

 

5. Listenerクラスのインスタンス生成

 

 

5では、listener変数にてListenerクラスのインスタンスを生成します。

 

6. 指定の検索ワードをフィルタして受信開始

 

 

6では、ようやく受信開始となりますが、stream.filterを利用して、任意の単語を含む全てのツイートをストリーミングします。
trackパラメータは、ストリームする検索語の配列です。

 

★twitter-stream1.py★

 

 

★出力結果★

python 13 1 - 【Python】TwitterのStream APIにてデータ収集

 

みなさんも気になるワードでツイッターを分析してみてはいかがですか?^^

それでは!!

 

機械学習や分析の分野に興味があり、pythonを学びたいと思っている方は是非こちらもどうぞ↓

誰でも30日間で習得出来るpython学習法

ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、現在フリーランス活動中。 2019年2月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。