URLからHTMLを取得する(WebRequest)

ネットワーク

URLからHTMLソースを取得する方法を記載します。

URLからHTMLソースをダウンロードする

テキストボックスに入力したURLからHTMLソースを取得し、結果をテキストボックスに出力する処理を書きました。

サンプルプログラム

//URLの取得
string url = this.URLTextbox.Text;

//HttpWebRequestを作成
System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
//または、
//System.Net.WebRequest webreq = System.Net.WebRequest.Create(url);

//サーバーからの応答を受信するためのHttpWebResponseを取得
System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse)webreq.GetResponse();
//または、
//System.Net.WebResponse webres = webreq.GetResponse();

//応答データを受信するためのStreamを取得
System.IO.Stream st = webres.GetResponseStream();

//文字コードを指定して、StreamReaderを作成
System.IO.StreamReader sr = new System.IO.StreamReader(st, System.Text.Encoding.UTF8);

//HTMLをすべて受信
string htmlSource = sr.ReadToEnd();

//閉じる
sr.Close();
st.Close();
webres.Close();

sr.Dispose();
st.Dispose();
webres.Dispose();

this.ResultTextbox.Text = htmlSource;

試しに当サイトのページを開いてみました。

結果

まとめ

HTMLソースを取得して解析することができるので、ブラウザを使ってページを読み込んでからチェックする必要はなくなります。またページのリソース(画像など)を読み込まないので高速です。

ただ、stringを取得するだけでJavaScriptやHTML言語などは動かないので、自動で他のページへ遷移してくようなサイトでは望む結果は取得できないかもしれません。

コメント

タイトルとURLをコピーしました