VBAのIE(InternetExplorer)制御で「twpro」を利用してツイッターのアカウント、プロフィール情報を取得する制御方法について解説しています。
今回は、ツイッターのプロフィール検索サービスから該当するキーワードのアカウント名とプロフィール内容を抽出する方法を解説します。
プロフィール検索サービスはいくつか存在しますが、今回は「twpro」を利用してみます。
まずは、処理の流れを見ていきましょう。
となります。
こちらは、完成したマクロになりますので、ご確認ください。
#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='検索'>
<noscript>
<input id='nojs' name='nojs' type='hidden' value='1'>
</noscript>
</form>
※ドラッグ(スワイプ)すると全体を確認できます。
フォームのテキストボックスに入力する「formText」を利用して、inputタグに「word」が含まれるテキストボックスへ「有吉」を入力します。
今回、「有吉」にした理由は特にありません(笑)
なんとなく思いついたのでこちらのキーワードにしました^^
次にタグをクリックする「tagClick」を利用して、inputタグに「検索」が含まれているタグをクリック処理をします。
これにより自動検索されます。
ここで検索は完了しましたが、検索された状態を見ると20アカウントしか表示されておらず、全て表示するには「もっと見る」をクリックする必要があります。こちらが表示されている間、ループ処理で何度でもクリックしていきます。
こちらのソースの中身を見ると「もっと見る」は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 >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。
ExcelのVBA初心者入門↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。
こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。