VBAのIE処理でポータルサイトのデータを抽出したい
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年10月20日(月)20時36分 From: 通りすがり | 返事 削除 変更 |
案外簡単だったのでやってみた。 一応このサイトのサブルーチン使ってるので、そこは省きます。 以下サンプルで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 |
Message#1 2014年10月20日(月)19時30分 From: ピアット | 返事 削除 変更 |
VBAのIE処理で下記サイト(ポータルサイト)のデータを抽出したいのですがどのようにすればよろしいでしょうか? 各都道府県別に一覧表があるので、雑貨屋紹介ページのURLを抽出してからそのURLにアクセスしてURL、地域 、紹介文、店舗名、住所、電話番号、営業時間、定休日を抽出したいと考えています。 VBAでIEを表示したりするぐらいなら知識があるのですが、全体的なプログラムを書ききれません。 どのように書けばいいかご指示お願いします。 http://zakka.30min.jp/ |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降