pythonからtwitter apiにアクセスしてツイートを出力!さらにwordcloudを作るよ

概要

twitterのapiの使い方がわかったのでメモ。

さらに、apiで集めたデータをwordcloudと2次元のグラフにプロットしてみましょうというものです。

実装部分は、できるだけ短いコードで実現しています。

Twitter API でデータを集めてみます

ここからは、Twitter API で、ツイートのデータを集める方法を紹介します。

前提条件としてTwitter APIに登録しているものとします。

まだTwitter APIに登録されていない場合は、以下の記事が参考になります。

図解が多く、とてもわかり易いと思います!

Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ

twitterライブラリーをインストールする

以下の例では、twitterライブラリーを使います。

よって、以下のpipコマンドでtwitterライブラリを追加します。

$pip install twitter

API使うための認証処理

まず、以下の処理にてAPI使うための認証処理を実行します。

CONSUMER_KEYなどの設定情報は、APIの登録画面でアプリ登録すると発行されます。

#Twitter APIにアクセスするための4つの設定
CONSUMER_KEY = 'CONSUMER_KEYを設定する'
CONSUMER_SECRET = 'CONSUMER シークレットを設定'
ACCESS_TOKEN = 'アクセストークンを設定する'
ACCESS_TOKEN_SECRET = 'アクセストークンのシークレットを設定する'

#Twitter APIにアクセスする
api = twitter.Api(consumer_key=CONSUMER_KEY,
                  consumer_secret=CONSUMER_SECRET,
                  access_token_key=ACCESS_TOKEN,
                  access_token_secret=ACCESS_TOKEN_SECRET)

検索結果を取得する

GetSearch関数を使うことにより検索結果を取得することができます。

以下のコードは、キーワード「プログラミング」で検索結果を取得する例です。

#検索結果を取得する
from urllib.parse import urlencode
query = urlencode({
    'q': 'プログラミング',  # 検索ワード
    'result_type': 'recent',  # recent/popular/mixed
    'count': 100  # 取得するツイート数(100が最大)
   # 'max_id':  これを利用して更に過去の情報を取れる
})

result = api.GetSearch(raw_query=query)
#print(result)
text_list = []
for status in result:
    #print(status)
    print(status.user.name)
    print(status.text)

タイムラインを取得する

GetUserTimelineを使うことによりタイムラインを取得できます。

以下の例では、マナブさんのタイムラインを取得する例です。

statuses = api.GetUserTimeline(screen_name='manabubannai', count=100) #マナブさんのタイムラインを取得する
for status in statuses:
    print(status.text)

以上が、apiを使ってツイートを取得する方法でした。

せっかくなので集めたツイートをwordcloudにしてみよう

ツイート情報をただ眺めては意味がありません。

ここでは、集めたツイートデータをwordcloudで可視化してみましょう。

create_wordcloud関数の第一引数には、テキストのlistを渡すようにしています。

#wordcloudを作成する
def create_wordcloud(text):

    # 環境に合わせてフォントのパスを指定する。
    fpath = "./ipamp.ttf"
    text = " ". join(text)
    # ストップワードの設定
    stop_words = [ u'てる', u'いる', u'なる', u'れる', u'する', u'ある', u'こと', u'これ', u'さん', u'して', \
             u'くれる', u'やる', u'くださる', u'そう', u'せる', u'した',  u'思う',  \
             u'それ', u'ここ', u'ちゃん', u'くん', u'', u'て',u'に',u'を',u'は',u'の', u'が', u'と', u'た', u'し', u'で',u'ます',u'です' \
             u'ない', u'も', u'な', u'い', u'か', u'ので', u'よう', u'',"http","https","RT"]

    wordcloud = WordCloud(background_color="black",font_path=fpath, width=900, height=500, \
                          stopwords=set(stop_words)).generate(text)

    plt.figure(figsize=(15,12))
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

wordcloudを作る方法については、詳細は以下の記事を参考にしてください!

https://programming-info.dream-target.jp/wordcloud

全体のコードを掲載するよ

最後に、これまで解説したものを全体のコードとして掲載します。

まとめ

以上、Twitter APIを使ってツイート情報を取得する方法でした!

評判も見えるPGスクール検索・比較表

どのプログラミングスクールがいいんだろう?
そんな疑問をお持ちの方に、評判も見えるプログラミングスクール検索・一括比較サービスをリリースしました。

条件を指定することにより、気になるプログラミングスクールを一発で比較できます。
きっと、条件にあったスクールが見つかるかと思います!
詳細は、以下の画像をクリック!

プログラミングスクール検索・比較のペン太ブル
スポンサーリンク
PR




PR




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
PR