- PR -

C#で作ったブラウザからソース取得

1
投稿者投稿内容
松の陰
会議室デビュー日: 2005/11/05
投稿数: 11
投稿日時: 2006-07-05 18:26
C#でブラウザを作りまして、
現在ブラウザに表示されてるページのソースを
自動取得してstring型の変数に記憶させるということを
したいのですがどうにもやり方がわからず困っています。
何かご存知の方はご教授お願いします。



※ulrからソースをダウンロードしてstring形式の変数に記憶させるということは
以下の方法でできますが、あくまで現在表示されているページのソースを取得したいのです。

string url = "http://*****.co.jp"
WebRequest req; = WebRequest.Create(url) as HttpWebRequest ;
HttpWebResponse res = req.GetResponse() as HttpWebResponse;

StreamReader reader = new StreamReader(res.GetResponseStream(),
           Encoding.GetEncoding("Shift_JIS"));
string source = reader.ReadToEnd();
reader.Close();
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-05 18:48
引用:

松の陰さんの書き込み (2006-07-05 18:26) より:

C#でブラウザを作りまして、
現在ブラウザに表示されてるページのソースを
自動取得してstring型の変数に記憶させるということを
したいのですがどうにもやり方がわからず困っています。


最初にブラウザに読み込んだソースをメモリに退避させておいて、
ソースの表示は退避させたメモリから表示させるのではだめですか?
松の陰
会議室デビュー日: 2005/11/05
投稿数: 11
投稿日時: 2006-07-05 19:42
早速のご返答ありがとうございます。


>最初にブラウザに読み込んだソースをメモリに退避させておいて、
>ソースの表示は退避させたメモリから表示させるのではだめですか?
どういうやり方でも問題ありません。
それは具体的にどうやればいいのでしょうか・・・。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-05 20:10
引用:

松の陰さんの書き込み (2006-07-05 19:42) より:

>最初にブラウザに読み込んだソースをメモリに退避させておいて、
>ソースの表示は退避させたメモリから表示させるのではだめですか?
どういうやり方でも問題ありません。
それは具体的にどうやればいいのでしょうか・・・。


ブラウザを作ったって言うことは
HttpWebResponse で取得したデータを元に
HTML の構造を解析していますよね・・・・・・あっ

ブラウザのコントロールを貼り付けているのか
検索したらこんなのが出てきましたけれど
少し動きが違うかな・・・
http://d.hatena.ne.jp/santamarta/20050219
松の陰
会議室デビュー日: 2005/11/05
投稿数: 11
投稿日時: 2006-07-05 20:47
引用:

ブラウザを作ったって言うことは
HttpWebResponse で取得したデータを元に
HTML の構造を解析していますよね



すいません。説明不足でした・・。
ブラウザはC#にあるExplorerというオブジェクトを使ってつくっています。
これを使えば例えば


private AxSHDocVw.AxWebBrowser axWebBrowser1;

object url = "http://*****.co.jp";
   axWebBrowser1.Navigate2(ref url, ref flags, ref targetFrame, ref postData, ref header);

という命令だけで簡単にブラウザにページを表示できるため、
StreamReader等でソースを取得してメモリに格納して
HTML解析といったことをやる必要がないのです(というか自動で解析してくれてます)。

おそらくですがaxWebBrowser1のどこかにstring型のプロパティとしてソースが
格納されているのではないかと予想してるのですが、
しらみつぶしにメンバを探してみても
それらしき物を見つけることができなかったのです・・(というか多すぎる・・)。
そこでこちらの掲示板で質問させていただいたというわけです。

引用:

ブラウザのコントロールを貼り付けているのか
検索したらこんなのが出てきましたけれど
少し動きが違うかな・・・
http://d.hatena.ne.jp/santamarta/20050219


リンク貼っていただいてありがとうございます。
私はC#しかやっていないのでVBで書かれてると
よく分からないのですが、どうやらこれは
「ブラウザで右クリックしてソースを表示」という作業を
実行するためのコードではないでしょうか?

私がやりたいのはstring型の変数にソースデータを記憶させたいのですが・・。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-05 20:58
Documentプロパティがそれっぽいですね

サンプルがありました。
http://homepage3.nifty.com/midori_no_bike/CS/sample.html
松の陰
会議室デビュー日: 2005/11/05
投稿数: 11
投稿日時: 2006-07-05 21:21
ありがとうございます!
このやり方で問題解決しそうです。

本当に見つけるの早いですね。
というか私が遅いのでしょうか・・・^^;
緑のバイクはチェックしたつもりだったのですが見逃してました・・orz

答えてくださって本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)