DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ウエブサイトから特定データを連続取得したい

環境/言語:[Windows XP, C#,VisualStudio2010]
分類:[.NET]

ブラウザを起動することなくHP(Https)に表示されている複数の特定データを自動更新しながら一覧表示させるプログラムを作成して正常に動作しているのですが、1つ不明点がありますのでご教示下さい。(WebRequestクラス使用)

【動作内容】
1.ログインが必要なサイトなので起動時に1回だけ自動ログイン処理

2.タイマーイベントでcookieを送信しながらstreamReader.ReadToEnd();でHTMLを受信→必要なデータを抽出

3.HTMLはHP中の複数のタブを選択しながら取得しますのでWebRequest.Create(url);で都度、順次複数種のURLを指定

【問題点】
サイト管理者から連絡があり、1日に40万回以上の「ログイン→ログアウト」が繰り返されているとのことで、デバッガで確認したのですが上記「1.」の部分は1回しか呼ばれていませんので「2.3.」の部分でその処理が行われているとしか思えません。

【確認済み事項】
1.「Microsoft Network Monitor」と「Fiddler」で通信データを捕捉して見たのですが、私には何がなんだか分かりませんでした。(同じ動作の通信を補足してもNetwork MonitorとFiddlerではパケット自体が全く異なる…ツール設定がおかしい?)

2.「【動作内容】2.」でブレイクを掛けて放置し、タイムウアウトでログインが自動解除になってからHTMLを取得するとログアウト後の内容になるので、ここでその都度ログイン処理はされていないと思われる。

一体何が原因でしょうか。サイトのセキュリティなどの絡みでしょうか。
何か解決の糸口でも見つかれば有難いです。

以上、他のサイトでも質問したのですが未解決ですので宜しくお願いします。
2012/08/17(Fri) 21:01:17 編集(投稿者)

■No30828に返信(mark225さんの記事)
> 【問題点】
> サイト管理者から連絡があり、1日に40万回以上の「ログイン→ログアウト」が繰り返されているとのことで、デバッガで確認したのですが上記「1.」の部分は1回しか呼ばれていませんので「2.3.」の部分でその処理が行われているとしか思えません。

サイト管理者が指摘している「ログイン」と「ログアウト」という事象と、mark225 さんが意図している「ログイン」と「ログアウト」の事象が違うのではないかと思いました。


サイト管理者はおそらくログに残っている記録を元に指摘をしていると予想されます。
このログに残る「ログイン」とは、「フォーム入力を伴うログイン」なのかが外側からはわかりません。

そうなっているかどうかわかりませんが、以下のようなことは考えられます。

(1)ログインのタイムアウトとは別にサーバー側でセッションがあって、その開始と終了がログファイルにおける「ログイン」「ログアウト」になっているかもしれない。

(2)実はログイン状態に関係なく処理ごとに「ログイン」「ログアウト」とログに残るようになっていて、自動処理でずっと繰り返されるアプリが異常行動に見えた。

記載されている確認観点と結果からすると、利用者側からはおそらく特定できません。サイト管理者に現状わかっていることを伝えて、相談してみるところからでしょうか。

-----
> 以上、他のサイトでも質問したのですが未解決ですので宜しくお願いします。

そうでしたら、そのサイトの URL を併記するなど、適切に対応をお願いします。
(書き込みルール参照)
早速の回答、有り難うございました。

> (1)ログインのタイムアウトとは別にサーバー側でセッションがあって、その開始と終了がログファイルにおける「ログイン」「ログアウト」になっているかもしれない。
>
すみません。この説明内容は私には理解できないです。
ただ、サーバー側の問題とのこと、了解しました。

> (2)実はログイン状態に関係なく処理ごとに「ログイン」「ログアウト」とログに残るようになっていて、自動処理でずっと繰り返されるアプリが異常行動に見えた。
>
こちらは理解できます。 なるほど、そう言うことであれば説明はつきます。
こちらのプログラムを調べても答えは出ない筈です。

> 記載されている確認観点と結果からすると、利用者側からはおそらく特定できません。サイト管理者に現状わかっていることを伝えて、相談してみるところからでしょうか。
>
そうですね。 こちらのプログラムの問題とばかり思っていたのですが、相手側の問題であればそれしかないですね。

> -----
>>以上、他のサイトでも質問したのですが未解決ですので宜しくお願いします。
>
> そうでしたら、そのサイトの URL を併記するなど、適切に対応をお願いします。
> (書き込みルール参照)
>
すみません。 初めての投稿だったので…ひととおりルールは見たのですが見落としてました。
http://oshiete.goo.ne.jp/qa/7637226.html
こちらの回答で、GetHtml()ではログオン、ログアウトはしていないとの回答が得られたのですが、「何か原因がある筈」と思って調べても分からず、当サイトにSOSを出した次第です。

原因がサーバー側の処理に依存するのであればいくら探しても見つからない筈です。
お陰さまで納得できました。 有り難うございました。
■No30833に返信(mark225さんの記事)
> 原因がサーバー側の処理に依存するのであればいくら探しても見つからない筈です。
> お陰さまで納得できました。 有り難うございました。

あくまで、今のところの推測に過ぎません。
もしかしたら、ほかの可能性もあるので、サイト管理者の方に相談される際には、断定的な物言いにならないように気をつけてください。
> あくまで、今のところの推測に過ぎません。
> もしかしたら、ほかの可能性もあるので、サイト管理者の方に相談される際には、断定的な物言いにならないように気をつけてください。
>
了解しました。最後までご丁寧なアドバイスをいただき、有り難うございました。
※解決済みの表示方法が分かりませんでしたので、遅ればせながら。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板