Tech-Joho.info

Twitterで特定のフレーズで検索して結果を表示するアプリ

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