Python独学ならTech-Joho TOP > いろいろやってみた > Twitterで特定のフレーズで検索して結果を表示するアプリ
Twitterで特定のフレーズで検索して結果を表示するアプリを作ってみました。
ライブラリ
tweepyはメンテナンスが停止したらしいのでTwthonというライブラリを使います。
Twython公式
https://github.com/ryanmcgrath/twython
Twythonを使う
tweepyについて
http://qiita.com/ogrew/items/0b267f57b8aaa24f1b73
押したキー
http://qiita.com/tobesan/items/d9f4bd543c3a85b49bb2
利用するAPI
Twitter Search
https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets.html
環境
windows 10
python 3.6.2
virtualenv
準備
virtualenv有効化
/Users/xxxxxx/.virtualenvs/djangodev/Scripts/activate
Twithonインストール
$ pip install twython
アプリ登録
https://apps.twitter.com/
アプリを登録して、APIキーとAppシークレットを取得
継続的にツイートを取得するためストリームAPIを使いたいなら、アクセストークンとアクセストークンシークレットも取得
コード
.config.py
APP_KEY = 'xxxxxxxxxxxxxxxxx'
APP_SECRET = 'xxxxxxxxxx'
ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
ACCESS_TOKEN_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
検索API使うやつ
エンターキーを押すたびに、繰り返し検索する
Search APIを利用
OAuth1が必要
search.py
from twython import Twython, TwythonError
import config
pressed = ''
twitter = Twython(config.APP_KEY, config.APP_SECRET, oauth_version=2)
ACCESS_TOKEN = twitter.obtain_access_token()
twitter = Twython(config.APP_KEY, access_token=ACCESS_TOKEN)
while pressed == '':
try:
results = twitter.search(q='プロ野球')
print('tweets num:', len(results))
print(results)
except TwythonError as e:
print(e)
pressed = input("type in enter")
print('finish')
ストリーミングAPI使うやつ
継続的にツイートを取得しフィルターする
Streamimg APIを利用
OAhth2が必要
stream.py
from twython import TwythonStreamer, TwythonError
import config
class MyStreamer(TwythonStreamer):
def on_success(self, data):
if 'text' in data:
print(data['text'])
def on_error(self, status_code, data):
print(status_code)
try:
stream = MyStreamer(config.APP_KEY, config.APP_SECRET, config.ACCESS_TOKEN, config.ACCESS_TOKEN_SECRET)
stream.statuses.filter(track='AKB48')
except TwythonError as e:
print(e)
コードはこちらからもダウンロードできます。
https://github.com/tech-joho-info/GetTweetsByPython