アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#でhtmlソースを取得したいのですが、取得できるページと出来ないページがあって困っています。

取得方法は以下の方法を使用しています。

===ここから===

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
HttpWebResponse res = null;
try
{
res = req.GetResponse() as HttpWebResponse;
}
catch
{
MessageBox.Show(url + "指定した Web ページが応答していません!", "エラー");
}
StreamReader reader = new StreamReader(res.GetResponseStream(),
Encoding.GetEncoding(encode));
string htmlsource = reader.ReadToEnd();
reader.Close();

===================

htmlsourceにソースが入るのですが、取得できないページも一応ソースは取得できるのですが、
実際にIEなどのブラウザで表示した場合のソースと異なります。

ユーザーエージョンとして
req.UserAgent = "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0";
を設定しても結果は同じでした。

■取得できるページ例
http://www.amazon.co.jp/s/ref=sr_nr_n_1/375-1273 …

■取得できないページ例
http://www.amazon.co.jp/s/ref=sr_nr_n_3?rh=n%3A4 …

A 回答 (1件)

どういう差異が出ているのかわかりませんが、


セッションIDが埋め込まれたような箇所が変化するというのであれば、
それは変化することが当然なのでそれを前提に処理するべきかと思います。
それ以外の違いがあるとしたら、
以下のような点が要因となっている可能性はあるのでは無いでしょうか。

・JavaScriptなどのスクリプトでページ内容が動的構成されている
・Cookieによってサーバーが異なるHTMLを返却している

ブラウザ側でページを開く際、
JavaScriptを無効にしてページを開いたり、
Cookieを削除してページを開いたりしてソースを比べてみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
何とかできました!!!

お礼日時:2013/09/01 02:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!