VBA IE操作 スクレイピング
VBA IE操作について
こんばんわ。いつもお世話になっております。
初心者の質問ですが、先生方のご意見ご指導宜しくお願いいたします。
OS : windows7 , EXCEL2007
--------------------------------------------------------------
プロ野球のサイトにアクセスし、(セントラル・リーグ)の球団に在籍する選手
の画像を自動で取得するコードを作りたいと思っています。
(1) 2012年度 選手一覧 → http://bis.npb.or.jp/players/ を開く
(2) 球団名のリンクをクリックして球団ページへ移動する
(3) 球団ページ内の選手名のリンクをクリックして選手ページへ移動する
(4) 選手紹介欄の画像を取得する
上記のような行程なのですが、(2)の球団数も6球団あります。
(4)の選手数にしても何十人もいますので、for ~ next でループさせたいと思っています。
このような場合IEで処理することは可能なのでしょうか?
参考サイトなどから沢山のお知恵をいただき、下記のようなコードを試してみたのですが、
エラーとなり、うまくいきませんでした。
sheet1
A
1
2
3 中日ドラゴンズ
4 東京ヤクルトスワローズ
5 読売ジャイアンツ
6 阪神タイガース
7 広島東洋カープ
8 広島東洋カープ
9 横浜DeNAベイスターズ
Sub Test ()
Sub Graph_Down2()
Dim nmbr As Integer
nmbr = Range("A3").End(xlDown).Row - 2
Set objIE = CreateObject("InternetExplorer.Application") 'IEを開く
objIE.Visible = True
objIE.Navigate "http://bis.npb.or.jp/players/"
Do While objIE.ReadyState <> 4 'サイトが開くまで待機
Do While objIE.Busy = True
Loop
Loop
For i = 0 To nmbr
'表示されているサイトのアンカータグ一つずつを変数objにセット
For Each obj In objIE.Document.getElementsByTagName("a")
'Obj.innerTextと全機種名が一致すれば
If Trim(Range("A" & i + 3).Value) = Trim(obj.innerText) Then
'該当するタグをクリック
obj.Click 'ページジャンプ
'//
'移動したページの画像を取得する処理コードを書く
'//
objIE.GoBack '前のページへ戻る '* ここでエラーになります
Exit For
End If
Next
Next i
' Set Obj = Nothing
' objIE.Quit
' Set objIE = Nothing
End Sub
上記コードですが、
IEで2012年度 選手一覧を開く → A3の球団名と一致したリンクをクリック →
中日ドラゴンズのページに移動 まではできています。
この先の処理についてご指導いただければと思います。
基礎ができていないど素人のため拙い説明ですが、
お分かりの方いましたら是非ご指導願います。
宜しくお願いいたします!
お礼
補足
余りにも当然の事を失念していました。顔から火が出そうです。