前提・実現したいこと
VBAで簡単なwebスクレイピングの練習をしております。
className="top"の下の子要素である<h4>タグで囲まれている、
<a>タグ要素の取得方法が分からず質問させていただきました。
初歩的な質問で申し訳ありませんが調べても理解できなかったため質問させていただきました。
よろしくお願いいたします。
取得したい要素の構造
<div class="top"> <h4><a href="https://www1.............>contents1</a></h4> </div> <div class="top"> <h4><a href="https://www2.............>contents2</a></h4> </div> <div class="top"> <h4><a href="https://www3.............>contents3</a></h4> </div>このような構造において全<a>タグのURLと要素内容を取得したいです。
書きかけのコード
vba
1 2 ```ここに言語を入力 3 Dim htmlDoc As HTMLDocument 4 Set htmlDoc = targetIE.document 5 6 Dim colTop As IHTMLElementCollection 7 Set colTop = htmlDoc.getElementsByClassName("top") 8 9 Dim topElement As IHTMLElement 10 Dim tagA As IHTMLElement 11 12 For Each topElement In colTop 13 tagA = topElement.Children.getElementsByTagName("a") 14 debug.Print tagA.innerText 15 debug.Print tagA.href 16 Next topElement
エラー箇所
For文内
tagA = topElement.Children.getElementsByTagName("a")
で ”実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません”
と表示されます」。
コードブロック```内はコードまたはエラーメッセージのみにしてください。正しく再現確認がとれません。また、colTop は想定通りの情報がとれていますか?For文内には幾つか記述がありますが、どこでそのエラーは出ているのでしょうか?
ご指摘いただきありがとうございました。以後ご質問させていただくときには気を付けるようにいたします。For文内のtagA = topElement.Children.getElementsByTagName("a") の箇所でエラーが発生します。。。colTopは期待通りのHTMLCollectionが取得できております。
質問は編集できるので適宜対応してもらえると助かります
回答3件
あなたの回答
tips
プレビュー