Python Twitterで評判チェック

これをマスター

PythonでGoogle翻訳ライブラリーを使ってみよう
マスター Twitter APIでツィート取得

今日の課題

Twitterで評判をチェックしてみよう

import tweepy as tw

auth = tw.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tw.API(auth, wait_on_rate_limit=True)

search_words = "渋谷+カフェ"
tweets = tw.Cursor(api.search, q=search_words,  lang="ja",count=100).items()

「渋谷」「カフェ」のツィートを検索してみました

少し長めのコードになりますがあっと言う間に
数千行のデータが取れます

結果はこんな感じ

 
 
 ABCDEFG
1created_atidid_strtexttruncatedsource
20Sat Aug 29 15:59:36 +0000 202012997000000000000001299738478977000000RT @bmax0306: 【交換・譲渡】妖狐×僕ss いぬぼくカフェ 藤原ここあ\n\n【譲】1枚目\n通常柄 前半後半 33種\n\n【求】2枚目 💖>💙>⭐️>無印\n💙渋谷限定ランチョン2種\n\n💖→当方7:1まで可能\n💙→5:1、⭐️→4:1、無印→1:1\n\n仮約束◎\nDMからのご…FALSETwitter for Android
31Sat Aug 29 15:56:35 +0000 202012997000000000000001299700000000000000RT @tsank85: いぬぼくカフェ 交換\n\n譲)写真の物\n\n求)渋谷後半限定コースター\n\n当方凜々蝶が最推しです。\n現状、某ウイルスの影響で東京へ行く事が出来ないのでとても求めております。\n難しいのは承知しておりますが、複数提供可能ですのでご検討頂けますと幸いです。\n検索…FALSETwitter Web App
42Sat Aug 29 15:54:58 +0000 202012997000000000000001299700000000000000@ngntrtr カフェでお世話になってる…(゚ω゚)\n\n…Σ(゚Д゚)\n\n…(≧▽≦)\n\nという事は、カフェと一緒で大阪・名古屋・仙台・札幌あたりで開催する可能性もゼロじゃないという事ですね☆(*´▽`*)\n渋谷は大盛況になるは… https://t.co/tmO21MXA8GTRUETwitter for Android
53Sat Aug 29 15:51:41 +0000 202012997000000000000001299700000000000000RT @princesscafe333: 【#多数欠 × プリンセスカフェ】\n『多数欠アニメ化プロジェクト Thanks Store in 渋谷マルイ』の開催を記念して、渋谷マルイ1Fにて、9/4~コラボ開催決定!\n\nコラボドリンクのテイクアウトやオリジナルグッズをご用意致しま…FALSETwitter for iPhone
64Sat Aug 29 15:48:54 +0000 202012997000000000000001299700000000000000RT @onoyax: 渋谷のミヤシタパーク、パンとエスプレッソとまちあわせにて、大人のカフェショコラ。18時から。\nチョコアイス、フォンダンショコラ、コーヒーグラニテ、ムー(食パン)のサクサク、ムーのティラミス、パールチョコ。苦味とサクサクがちょうどよい。底のパールチョコ、か…FALSETwitter for iPhone
7
8
9
10

created_atカラムにツィートの時間が
textのカラムにツィートの内容が取れているのが確認できます



コードを詳しく見ていきましょう

詳しく

ライブラリのインストール

tweepyというライブラリーを使います
インストールは
pip install tweepy
これで完了です

PIPの使い方は<i class=”far fa-hand-point-down”></i>をご覧になってみてください

ライブラリ等の読み込み

スペース都合上サンプルには記載しておりませんが
Twitter APIを使うには登録が必要になります
https://developer.twitter.com/en/docs/tweets/search/overview

登録ページが英語なので若干ハードルが高いですが
スタンダードプランでは(過去7日分の制限はありますが)
コストはかかりません

登録するとのキー、シークレット、トークン、トークンシークレットが貰えますので 無くさないように保存しておきましょう

consumer_key= '***'
consumer_secret= '***'
access_token= '***'
access_token_secret= '***'
加えてをコードの先頭に入れます 全体ではこんな感じになります
import tweepy as tw
import pandas as pd

#--取得したキーを入れて下さい--#
consumer_key= '***'
consumer_secret= '***'
access_token= '***'
access_token_secret= '***'

auth = tw.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tw.API(auth, wait_on_rate_limit=True)

search_words = "渋谷+カフェ"
tweets = tw.Cursor(api.search, q=search_words,  lang="ja",count=100).items()

toJson = [tweet._json for tweet in tweets]
df = pd.io.json.json_normalize(toJson)
df.to_excel('tweet.xlsx')

ちょっと長めのコードですが順に見ていきましょう

import tweepy as tw
import pandas as pd

tweetpyとpandasのライブラリを読み込んでいます

auth = tw.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tw.API(auth, wait_on_rate_limit=True)

呪文のような3行ですがこのまま使えます

何をやってるかと言うと
Twitterに登録したキーやトークンを使って
APIと認証を行っています

search_words = "渋谷+カフェ"
tweets = tw.Cursor(api.search, q=search_words,  lang="ja",count=100).items()

ここでは実際にTwitter APIを呼び出して
「渋谷」「カフェ」のツィートを検索しています

search_words =”渋谷+カフェ”
の部分を探したいキーワードに変更すると
別の検索が出来ます

tweets = tw.Cursor(api.search, q=search_words, lang=”ja”,count=100).items()

このコードでは、APIの種類、検索ワード、言語(ja 日本語)、結果の件数を指定しています (今回100件だけ取得しました)
結果はtweetsにItemIterator形式で返ってきます

このままでは扱いずらいので
使い慣れているPandasのDataFrameに変換していきます

toJson = [tweet._json for tweet in tweets]
df = pd.io.json.json_normalize(toJson)
df.to_excel('tweet.xlsx')
tweepyのItemIteratorはlistのような形式で検索結果が保存されているので

toJson = [tweet._json for tweet in tweets]

forループで一件づつに分解して、検索結果がjson形式で治めてある _json カラムを取得します

df = pd.io.json.json_normalize(toJson)

json形式をPandasのデータフレームに変換します

df.to_excel('tweet.xlsx')

最後にExcelにエクスポートします

実践

エクスポートしたExcelで
どんなツィートがされているのかを調査していきます

textカラムで実際のツィートを確認出来ます

手作業で見て確認して行く事ももちろん大切ですが
データ量が膨大になって来たり
頻繁にチェックする場合などは
時間がかかってしまいます

昨今はこの作業を機械学習で行うのが流行です
AIにテキストを読み込ませて
単語ごとに分割 (ベクタライズ)して
頻繁に呟かれている言葉を分析したりします

あわせてご覧ください

EXCEL TRUNC ROUND

Excel

Excel SUMIFの使い方を分かりやすい例で紹介

Read More

SQL GROUP BY

SQL

SQL Tips

Read More