イベントサイトのイベント情報をVBAで抽出するには
未読分:5件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#5 2014年11月17日(月)21時31分 From: 管理人 | 返事 削除 変更 |
サブルーチンについては、本サイトのコンテンツをご確認ください。 Sub iichiDetale() Dim objIE As InternetExplorer Dim i As Integer, n As Integer r = maxRC Call ieView(objIE, "http://www.iichi.com/events") For i = 2 To r n = 4 Call ieNavi(objIE, Cells(i, 2)) 'イベントタイトル取得 For Each objTag In objIE.document.getElementsByTagName("h2") Cells(i, 2) = objTag.innerText Exit For Next 'イベントリンク取得 For Each objTag In objIE.document.getElementsByTagName("dd") Cells(i, n) = objTag.innerText Sheets("イベント2").Cells(i, n) = objTag.outerHTML n = n + 1 Next '画像データをダウンロードして保存 Call fileDL(objIE, "640x400", "iichi", i) Next i End Sub |
Message#4 2014年11月14日(金)14時58分 From: qlik | 返事 削除 変更 |
すごい! ありがとうございます。 無事にURLを抽出できました。 ついでで申し訳ないですが、取得したイベント詳細URLにアクセスしてイベントの情報 を抜き出すことは可能でしょうか? ざっくりでいいので、期間・場所・内容など抜き出せるのなら教えてください。 また、これもできたらでいいのですが、イベント画像もダウンロードできたらそちらも 教えてください。 よろしくお願いします。 |
Message#3 2014年11月14日(金)14時44分 From: 管理人 | 返事 削除 変更 |
あと、ループの数は目視で確認したページ数です。 今後変わってくるかとおもいますので、その都度変更してください。 |
Message#2 2014年11月14日(金)14時43分 From: 管理人 | 返事 削除 変更 |
リンクだけということなので、HTMLソースを見てみると「class="title"」がリンク特有のキーワードのようですね。 あとは、そのリンクだけを抽出していくのと、ページ分をループさせるだけなので、特に難しいことはないと思います。 ieViewなどのサブルーチンについては、本サイトを学習してください。 Sub iichiList() Dim objIE As InternetExplorer Dim i As Integer, n As Integer n = 2 Call ieView(objIE, "http://www.iichi.com/events") For i = 1 To 146 Call ieNavi(objIE, "http://www.iichi.com/events?page=" & i) 'イベントリンク取得 For Each objTag In objIE.document.getElementsByTagName("a") If InStr(objTag.outerHTML, "class=""title") > 0 Then Cells(n, 2) = objTag.href n = n + 1 End If Next Next i End Sub |
Message#1 2014年11月14日(金)14時09分 From: qlik | 返事 削除 変更 |
VBAのIE操作で検索してこちらにたどり着きました。 以下のサイトのイベント情報をVBAで抽出できないか考えています。 http://www.iichi.com/events やりたいことは一覧のイベントURLの取得です。 どのようにすればよろしいでしょうか? ご教授ください。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降