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

Python入門コンテンツのお供にBrython

Python独学ならTech-Joho TOP > いろいろやってみた > Python入門コンテンツのお供にBrython

Python入門コンテンツのお供にBrython

Web上のPythonの入門コンテンツに、ブラウザ内でPythonを実行できるコンソールを付けてみました。

道具としては、ブラウザ上でPythonコードが実行できるBrythonというJSのライブラリを使いました。

Brythonとは

Brython is designed to replace Javascript as the scripting language for the Web. As such, it is a Python 3 implementation

引用: http://brython.info/

Brythonは、としてのWebのためのスクリプト言語JavaScriptを置き換えるために作られました。これはPython3の実装です。(意訳)

というわけで、Brythonは、Webブラウザ上でJavaScriptの代わりにPythonが使えるものです。

Brythonの基本的な使い方

Brythonの典型的な使い方は、htmlのスクリプトタグの中に、JavaScriptじゃなくてPythonのコードを書く、というものみたいです。

例えばこちらのサイトにあるサンプルは非常に基本的なものです。

http://python301.blog123.fc2.com/blog-category-24.html

 

ちょっと応用で、テキストエリアに入力したPythonコードを実行するということもできます。

Brythonのコンソール

Brythonの公式サイトには、PytnonのREPL環境的なコンソール版のコードも公開されていました。

http://brython.info/console.html

それをiframeタグで読み込んだものです。
こんな風に書きます。

  <iframe src=http://brython.info/console.html width=800 height=400></iframe>

表示結果はこちら。

Pythonコードが実行できます。

Brythonコンソールをワードプレスに仕込む

もともと、このサイトではPythonの初心者向けのコンテンツを提供しようと考えていました。

このコンテンツが対象とする、ものすごく初心者な人には、Pythonをローカル環境にインストールして動かすのも一苦労ということが分かっていました。

ローカル環境にインストールするという作業は、Pythonのプログラミング学習の本質ではありません。インストールでつまずくのは非常にもったいない。

そこで、近頃よくあるブラウザ上でいろいろなプログラミング言語を実行してすぐ結果がみられる環境を、入門記事の中に入れられないかと考えました。

インストール前に、まずPythonを使う感覚をつかんでもらいたかったためです。

そこで、上に書いてあるBrythonのコンソールを、Wordpressで書いた記事の中に簡単に入れられるような工夫をしました。

Brythonコンソールをワードプレスに仕込む

上記のように、iframeでPythonコードを読み込んだだけです。

とはいっても、公式のコンソールを読み込むのは忍びないので、まずじtech-joho.info上でbrythonコンソール用のhtmlをホストしています。

これを、各投稿でirameで読み込んでいます。

さらに、使いやすいように、
テーマのCSSに、width:100%; position:fixed; bottom:0pxとか書いて、画面下部に固定しました。

表示例はこちらにあります。

第1回 Python Hello World