C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: HTMLの解析がうまくいかない


(過去ログ 114 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■67599 / inTopicNo.1)  HTMLの解析がうまくいかない
  
□投稿者/ やんまー (3回)-(2013/08/12(Mon) 15:05:53)

分類:[VB.NET/VB2005 以降] 

http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10357
を参考にしてHTMLの解析をしているのですが、
うまくいく時と行かない時があって困っています。

以下のようにして
<div class="TEST">〜〜〜</div>
を取得しています。


 1|Dim WebBrowser1 As New WebBrowser
 2|'ソースをセット
 3|WebBrowser1.DocumentText = html
 4|While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
 5|    Application.DoEvents()
 6|End While
 7|'DIVタグの部分を取得する
 8|Dim Elements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div")
 9|
10|'class="TEST" の部分をmsgboxにて表示
11|For Each e As HtmlElement In Elements
12|    If e.GetAttribute("className") = "test" Then
13|        msgbox( e.OuterHtml )
14|    End If
15|Next


しかしこの e.OuterHtml がとれたりとれなかったりします。
そこで、試しにe.OuterHtmlが空だった場合に3行目にGOTOで戻してみたところ、取得出来ました。

どうも4〜6行目の読み込むまで待つ部分がうまく動いてないのではないかと思います。

# 取得できなかった時のWebBrowser1.DocumentText をデバッグで見てみたところ
# <html></html>
# となっていました・・

どのようにしたら、ちゃんと読み込むまで待つことができますでしょうか?

引用返信 編集キー/
■67601 / inTopicNo.2)  Re[1]: HTMLの解析がうまくいかない
□投稿者/ shu (366回)-(2013/08/12(Mon) 15:38:03)
No67599 (やんまー さん) に返信
>> 4|While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
> 5| Application.DoEvents()
> 6|End While
この待ち方はやめたほうがよいです。
WebBrowser1のイベントでDocumentCompletedがあるのでそのイベントで
処理された方が良いかと思います。
引用返信 編集キー/
■67615 / inTopicNo.3)  Re[1]: HTMLの解析がうまくいかない
□投稿者/ ヴァン (27回)-(2013/08/16(Fri) 09:25:34)
こんにちは。

> 8|Dim Elements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div")

この時点で WebBrowser1.Document には期待通りのデータが入っていますか?

受信した際のURLが blank だったり javascript だったりしていませんか?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -