ツイッターのアカウント名・プロフィール情報を抽出

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

今回は、ツイッターのプロフィール検索サービスから該当するキーワードのアカウント名とプロフィール内容を抽出する方法を解説します。
プロフィール検索サービスはいくつか存在しますが、今回は「twpro」を利用してみます。
まずは、処理の流れを見ていきましょう。

  • ①twproをIEで開く
  • ②検索キーワードをテキストボックスに入力
  • ③検索ボタンをクリック
  • ④「もっと見る」をクリックし、全てのユーザーを表示させる
  • ⑤ツイッターのアカウント名を抽出
  • ⑥抽出したアカウント名の詳細ページを開く
  • ⑦プロフィール内容を抽出

となります。
こちらは、完成したマクロになりますので、ご確認ください。

スポンサー リンク

ツイッターのアカウント名・プロフィール情報抽出のマクロ


#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If

Sub sample()

 Dim objIE As InternetExplorer

 'twproで検索
 Call ieView(objIE, "http://twpro.jp/")
 Call formText(objIE, "word", "有吉")
 Call tagClick(objIE, "input", "検索")

label01:

 If tagCheck(objIE, "a", "もっと見る") = True Then

  Call tagClick(objIE, "a", "もっと見る")
  Sleep 2000
  GoTo label01

 End If

 'アカウント名取得
 r = 2

 For Each objTag In objIE.document.getElementsByTagName("span")

  If InStr(objTag.outerHTML, "screen-name") > 0 Then

   Cells(r, 2) = Right(objTag.innerText, Len(objTag.innerText) - 2)
   r = r + 1

  End If

 Next

 'プロフィール情報取得
 r = maxRC("アカウント情報", 2)

 For i = 2 To r

  Call ieNavi(objIE, "http://twpro.jp/" & Cells(i, 2))

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

   If InStr(objTag.outerHTML, "class=""description") > 0 Then
    Cells(i, 3) = objTag.innerText
   End If

  Next

 Next i

End Sub

実行結果

ツイッター情報自動取得

それでは、1つずつ見ていきましょう。


'twproで検索
Call ieView(objIE, "http://twpro.jp/")
Call formText(objIE, "word", "有吉")
Call tagClick(objIE, "input", "検索")

こちらは「twproサイト」の検索ボタンをクリックするまでの処理です。
まずは、「ieView」で指定したURLをIEで開きます。
次に「twproサイト」のソースを見ていくと以下のようになります。


<form action='/search' method='get'>
 <span>キーワード:</span>
 <input id='word' name='word' size='60' type='text'>
 <input id='go' type='submit' value='検索'>
 &nbsp;&nbsp;
 <noscript>
  <input id='nojs' name='nojs' type='hidden' value='1'>
 </noscript>
</form>

フォームのテキストボックスに入力する「formText」を利用して、inputタグに「word」が含まれるテキストボックスへ「有吉」を入力します。
今回、「有吉」にした理由は特にありません(笑)
なんとなく思いついたのでこちらのキーワードにしました^^

次にタグをクリックする「tagClick」を利用して、inputタグに「検索」が含まれているタグをクリック処理をします。
これにより自動検索されます。

ここで検索は完了しましたが、検索された状態を見ると20アカウントしか表示されておらず、全て表示するには「もっと見る」をクリックする必要があります。こちらが表示されている間、ループ処理で何度でもクリックしていきます。

twproサイト

こちらのソースの中身を見ると「もっと見る」はaタグでくくられているのが確認できますね。


<div class="more" id="more-1"><a href="#">もっと見る</a></div>

以下は処理内容ですが、こちらのaタグが表示されている間クリック処理を繰り返します。


label01:

If tagCheck(objIE, "a", "もっと見る") = True Then

 Call tagClick(objIE, "a", "もっと見る")

 Sleep 2000
 GoTo label01
        
End If

「もっと見る」があるかどうかをチェックするために「tagCheck」で確認していきます。
「If~Thenステートメント」ではaタグに「もっと見る」が含まれているaタグが存在する場合(True)に処理をするという流れになっています。
そして、「tagClick」で「もっと見る」をクリックしています。

「もっと見る」の処理はJavaScriptで処理をされているので通常の「ieCheck」で対応できない恐れがあるため、Sleepで2秒停止させています。
そのあとに、「GoToステートメント」でlabel01まで戻り再度処理を繰り返します。
こちらは「もっと見る」が表示されなくなるまでループ処理しますので、全てのアカウントが表示しされたらループから抜け出せます。

次ページはデータを抽出する方法について、解説しています。

次の記事: VBAのIE操作でツイッターアカウント取得1-2 >>

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)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。