|
案外簡単だったのでやってみた。 一応このサイトのサブルーチン使ってるので、そこは省きます。 以下サンプルで1回しか検証していないけど、うまくVBAが走ったのでなんとかいけるかと思います。 ところどころエラーがおこるようであれば、自分でカスタマイズしてね。 Sub 雑貨屋詳細データ抽出() Dim urlNO As String Dim r As Integer, n As Integer, i As Integer, x As Integer '▼詳細ページURL抽出 r = maxRC(, 1, 1) 'サイトを開く 'このサイトのサブルーチンを拝借 Call ieView(objIE, "http://zakka.30min.jp/") '一覧ページのページ番号をループ 'ここはとりあえず東京(/tokyo/)で設定しているから好きなディレクトリに変更すること 'ページ番号までは自動取得がめんどくさかったので、とりあえず100にしています。 'それぞれのページ数にかえること For n = 1 To 2 'For n = 1 To ★変更★ urlNO = "http://zakka.30min.jp/fukuoka/" & n 'urlNO = "http://zakka.30min.jp/★変更★/" & n '一覧ページを表示 'このサイトのサブルーチンを拝借 Call ieNavi(objIE, urlNO) '詳細URL取得(A列にどんどん格納していく) For i = 0 To objIE.document.Links.Length - 1 If InStr(objIE.document.Links(i).innerText, "スポット詳細を見る") > 0 Then Cells(r, 1) = objIE.document.Links(i).href r = r + 1 End If Next i Next n '▲ここまでが詳細ページのURL取得 '▼詳細データ抽出 '一覧で取得したデータ数 r = maxRC() For i = 2 To r '詳細ページをループで表示 'このサイトのサブルーチンを拝借 Call ieNavi(objIE, Cells(i, 1)) '紹介文取得 For Each objTag In objIE.document.getElementsByClassName("guide_place_text") Cells(i, 3) = objTag.innerText Exit For Next 'D列以降に店舗情報 x = 4 'テーブルにある情報をどんどん取得 For Each objTag In objIE.document.getElementsByTagName("td") Cells(i, x) = objTag.innerText x = x + 1 Next Next i '▲ここまでが詳細ページの情報取得 MsgBox "完了だ!" End Sub |
↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^
ExcelのVBA初心者入門↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^
こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。
こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。