CData Software Blog

クラウド連携のCData Software の技術ブログです。

Twitter の全ツイート履歴データを Excel で見やすく抽出する方法:CData Excel Add-in for JSON

こんにちは。CData Software Japan リードエンジニアの杉本です。

Twitterの機能で、全ツイート履歴をダウンロードする方法があるってご存知ですか?

help.twitter.com

f:id:sugimomoto:20210106180252p:plain

通常、Twitter APIで取得する場合だと色々と制限があるんですが、この機能を使うことで自分のツイートを一括で取得して、分析したり活用したりすることが可能です。

実はこのデータを活用して、以下の記事とかも作成していました。

www.cdatablog.jp

ただですね、フォーマットがちょっと面倒で、ZIPファイルを展開すると、以下のようなJSファイルが並んでいて、

f:id:sugimomoto:20210106180307p:plain

APIで取得できるJSONオブジェクトのままなんですよね。

f:id:sugimomoto:20210106180313p:plain

おそらく何も知らずにダウンロードした人は「これはどうすればいいんじゃ!」となること間違いなしです。

そこで今回は以下のような感じでこの全ツイート履歴のデータをExcelで見やすく、かつ特定のキーワードで抽出したりする方法を紹介します。

f:id:sugimomoto:20210106180430p:plain

JSONデータを少し調整する

まず、対象のファイルの「window.YTD.tweet.part0 = 」の部分を削除します。

window.YTD.tweet.part0 = [ {
  "tweet" : {
    "retweeted" : false,
    "source" : "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
    "entities" : {
      "hashtags" : [ ],
      "symbols" : [ ],
      "user_mentions" : [ ],
      "urls" : [ ]
    },
    "display_text_range" : [ "0", "82" ],
    "favorite_count" : "0",
    "id_str" : "99059949191176192",

その後「tweet.js」ファイルを「tweet.json」に変更してください。

f:id:sugimomoto:20210106180320p:plain

以下のようになればOKです。

f:id:sugimomoto:20210106180325p:plain

CData Excel Add-in for JSON で接続する

続いてこのJSONデータを見やすくするために、「CData Excel Add-in for JSON」をインストールします。

以下のURLからトライアルが入手可能です。

https://www.cdata.com/jp/drivers/json/excel/

f:id:sugimomoto:20210106180331p:plain

セットアップすると、ExcelにCDataタブが追加されるので「データの取得」→「取得元:JSON」を選択してください。

f:id:sugimomoto:20210106180338p:plain

接続設定の画面が立ち上がるので、対象の「tweet.json」ファイルをURIに指定しましょう。

f:id:sugimomoto:20210106180345p:plain

あとは「json」というテーブルを選択すればOKです。

f:id:sugimomoto:20210106180350p:plain

とりあえずOKをクリックすれば、100件ツイートデータがExcel上にロードできます。

f:id:sugimomoto:20210106180354p:plain

Likeやリツイートのカウントなども取得できるので、便利です。

f:id:sugimomoto:20210106180401p:plain

ちなみに、最大行数のチェック(LIMIT 100)を外せば、全件ロードできます。

f:id:sugimomoto:20210106180409p:plain

また、カラムのチェックボックスをON/OFFすることで、必要なカラムだけ表示することも可能です。

f:id:sugimomoto:20210106180415p:plain

特定キーワードを含むツイートだけ抽出する

もし、特定のキーワードだけ含むツイートを抽出したい場合は、以下のように「tweet.full_text」の項目に対して「次の値を含む:API」といった形で設定することで対応できます。

f:id:sugimomoto:20210106180423p:plain

SQLでも書けるようになっていて、以下のような指定になります。

SELECT * FROM [CData].[JSON].[json] WHERE [CData].[JSON].[json].[tweet.full_text] LIKE '%API%'

こんな感じでロードできました。

f:id:sugimomoto:20210106180430p:plain

是非お試しあれ