HTMLソースを取得する場合Webbrowserコントロールを使用しなければいけないのでしょうか?

タグの編集
投稿者 Saki  (社会人) 投稿日時 2011/2/17 13:56:56
Webページのタイトルを取得するときなどWebbrowserコントロールで一度対象のURLを表示させてから(非表示でもいけますが)取得することができます。

しかし、Webbrowserコントロールを使うと動作がもっさりして取得に時間がかかります。
これ以外に取得する方法はないのでしょうか。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/2/17 14:16:43
WebBrowser は、画像の読み込みやスクリプトの実行、クッキー制御なども行うため、
その分の処理時間がかかります。(これらを一時的に中止させる機能も一応ありますけど)

ソースの取得だけが目的なら、HttpWebRequest  クラス等を使った方が高速です。
http://dobon.net/vb/dotnet/internet/webrequestsavefile.html
http://dobon.net/vb/dotnet/internet/webrequest.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/302wcget/wcget.html

ただしこちらの方法では、WebBrowser.Document 相当の機能を利用できないため、
タイトルを取得したい場合は、Regex などで文字列を切り出す作業が必要になります。
投稿者 ぺぺたろう(旧トマト)  (中学生) 投稿日時 2011/2/17 18:49:44
SGMLReader(http://developer.mindtouch.com/en/docs/SgmlReader)とXmlDocument(またはXElementやXDocument)を使って自分でHTMLを解析するとこもできます。

Dim sgml As New Sgml.SgmlReader()
sgml.Href = アドレス
Dim xml As System.Xml.Linq.XElement = System.Xml.Linq.XElement.Load(sgml) 'VB2008以降 
sgml.Close()
Dim title As String = xml...<title>.Value()

未テストですいません