▽1
●
TransFreeBSD ベストアンサー |
GetElementsByNameはidやname属性に対するものでclassはみません。
ぱっと見た感じ、.Netにはそういうメソッドない様なので、for eachで回しながらGetAttributeでclass属性を取得して比較し、一つ一つ探すことになりそうです。
ちなみに、自身のタグも含めHTMLとして取得する場合は、InnerTextではなくOuterHtmlになると思います。
id:TransFreeBSD さん作成の回答No1.を参考に、
VBS ですが、
.getElementsByTagName("span")を使用してテストしてみました。
(VB.NETのテスト/ソースじゃなくてすみません)
'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.application") objIE.Top = 100 objIE.Left = 100 objIE.Width = 1024 objIE.Visible = True 'ページを開く(.Navigateで表示する。) objIE.Navigate "http://dec2011.top1-12.info/test1223.html" Wscript.Sleep 1000 '1000で1秒 '読み込み完了となるまで、ループする。 While objIE.ReadyState <> 4 Or objIE.Busy 'READYSTATE_COMPLETE = 4 Wscript.Sleep 100 '0.1秒待つ、1000で1秒 Wend Wscript.Sleep 1000 '1秒 'spanのタグを集める .getElementsByTagName("span")を使用 Set objspan = objIE.Document.getElementsByTagName("span") 'ループで頭から表示 strTEXT = "" '空白で初期化 For n = 0 To objspan.Length - 1 '※ HTMLの外と中を探したいので、.OuterHTMLと.InnerTEXTを使用 Msgbox objspan(n).OuterHTML 'class="strong1"が↑class=strong1になっているのが気になるが If Instr(objspan(n).OuterHTML,"class=strong1") > 0 Then strTEXT = objspan(n).InnerTEXT 'ほしいのは中の文字なので.InnerTEXTをセット Exit For '一番最初に見つけたデータのみ処理する End If ' Next Msgbox "見つけたのは " & strTEXT & "です" '全て .OuterHTMLを使用して探してみた 'IEを閉じたり、後始末 'objIE.Quit 'でパックなのでコメントアウト IEを閉じたり、後始末をする
'spanのタグを集める .getElementsByTagName("span")を使用
Set objspan = objIE.Document.getElementsByTagName("span")
でテストしてみました。
.getElementsByTagNameで"span"を指定して、
.OuterHTMLで確認後、.InnerTEXTで取得してみてください。
.netで処理する時の参考となれば幸いです。