ツイッターのツイート数・フォロー数・フォロワー数を自動抽出

こちらは、エクセルVBAでツイッターのツイート数・フォロー数・フォロワー数を抽出する方法についての解説となります。VBAの知識がない方や情報抽出ツールをお求めの方には、無償で提供していますので「ツイッターのツイート・フォロワー情報取得抽出ツール」よりダウンロードしてください。

今回は、ツイッターアカウントのツイート数・フォロー数・フォロワー数を抽出する方法について解説していきます。
ツイッターの情報取得には様々なサービスが存在します。
例えば、フォロワー数の確認であれば「twpro」「TWITTER COUNTER」といったサービスを利用すれば確認ができますが、どれも実際の数値とは異なり正確な数値を測ることができません。
正確に分析したい場合は、アカウント情報ページにアクセスして数値を抽出するのが一番正確な方法となります。
こちらの情報の使い道は人それぞれなのでどのように利用するかまでは明言しませんが、簡単に抽出できるので下記マクロをご確認ください。

スポンサー リンク

ツイッターのツイート数・フォロー数・フォロワー数を自動抽出のマクロ

Sub sample()

 'twitterアカウントページを表示
 Call ieView(objIE, "https://mobile.twitter.com/" & Range("B2"))

 '列番号
 col = 3
        
 For Each objTag In objIE.document.getElementsByTagName("div")

  If IsNumeric(objTag.innerText) = True Then

   Cells(2, col) = objTag.innerText

   col = col + 1

  End If

 Next

 objIE.Quit

End Sub

実行結果

ツイッターのツイート数・フォロー数・フォロワー数を自動抽出

まず、ツイッターはIE(InternetExplorer)のバージョンによって、処理を分けるというお話を「自動ログイン(ログアウト)処理」で説明しましたが、常にモバイル版で処理する方が一番早い方法です。
理由としては、まず「バージョンを気にする必要がない」ということと「モバイル版の方が処理がしやすい」ということです。
PC版のソースを見ていただけば分かりますが、非常に分かりづらいですし、phpやらJavaScriptを利用しているので、うまく処理することができない場合があります。ですので、ツイッター自動操作をする場合は、モバイル版で対応していきましょう。
それでは、1つずつ見ていきます。


Call ieView(objIE, "https://mobile.twitter.com/" & Range("B2"))

こちらでは「ieViewサブルーチン」を利用して、指定したツイッターアカウントのページを表示させています。
今回は、日本一のフォロワー数を誇る「@ariyoshihiroiki」のアカウントで抽出してみます。


col = 3

こちらは抽出する列番号を指定しています、今回は3つの情報を抽出するため、1列ずつ足していきそれぞれの情報を抽出していきます。


For Each objTag In objIE.document.getElementsByTagName("div")
(省略)
Next

ここでは、「getElementsByTagNameメソッド」を利用してdivタグを抽出しています。
divタグは非常にめんどくさい処理なのですが、ソースを解読して取得しやすい方法で取得していきましょう。
それでは、取得する部分のHTMLソースを見ていきます。


<table class="profile-stats">
 <tbody><tr>
  <td class="stat">
   <div class="statnum">11,974</div>
      <div class="statlabel">ツイート</div>
    </td>
    <td class="stat">
      <a href="/ariyoshihiroiki/following">
        <div class="statnum">204</div>
        <div class="statlabel">フォロー中</div>
      </a>
    </td>
    <td class="stat stat-last">
      <a href="/ariyoshihiroiki/followers">
        <div class="statnum">3,346,339</div>
        <div class="statlabel">フォロワー</div>
      </a>
    </td>
  </tr>
</tbody></table>

tableタグの中にdivタグで括られているのが分かりますね。一意のキーワードがないか調べてみるのですが、「statnum」はそれぞれ利用されており、ソースの幅を広げても中々見つけることができませんでした。
そこでどうしたかというと以下の処理で対応しました。


If IsNumeric(objTag.innerText) = True Then
(省略)
End If
こちらでは、「IsNumeric関数」を利用しています。「IsNumeric関数」は数値として認識できるものはTrueを返し、そうでないものはFalseを返します。今回のソースを確認すると数値だけで括られている最小タグはツイート数・フォロー数・フォロワー数のdivタグのみでした。そこに目を付けたというわけです。「innerTextプロパティ」を利用してdivタグ内の文字列が数字の場合に処理をするというプログラムになっています。


Cells(2, col) = objTag.innerText
col = col + 1

後は、簡単ですね。colは「3」でしたので、cells(2, 3)に抽出します。
そして、「col = col + 1」で列を1つ移動させ、「ツイート数」→「フォロー数」→「フォロワー数」の順に取得していきます。


objIE.Quit

最後にWebブラウザを閉じて完了となります。
今回は、VBAの関数を利用して取得する方法を解説しましたが、これ以外にも色々な方法で取得することができます。
自分なりに考えて一番いい方法を模索してください。

次の記事: VBAのIE操作でアメブロ情報取得 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。