0

私は毎日 Web サイトからいくつかのコンテンツをダウンロードする必要があるので、それを行うプログラムがあればいいと思います... 問題は、Web サイトが認証を必要とすることです。

私の現在の解決策は、System.Windows.Forms.WebBrowserコントロールを使用することです。私は現在次のようなことをしています:

/* Create browser */
System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();

/* navigate to desired site */ 
browser.Navigate("http://stackoverflow.com/");

// wait for browser to download dom

/* Get all tags of type input */
var elements = browser.Document.Body.GetElementsByTagName("input");

/* let's look for the one we are interested */
foreach (System.Windows.Forms.HtmlElement curInput in elements)
{
       if (curInput.GetAttribute("name") == "q") // 
       {
             curInput.SetAttribute("value", "I changed the value of this input");
             break;
       }
}

// etc

このアプローチは機能すると思いますが、最善の解決策ではありません。私は webclient クラスを使用しようとしましたが、動作しているように見えますが、何らかの理由で動作しません。うまくいかないのは、クッキーを保存しなければならないからだと思いますか?

したがって、私の質問は、サーバーに送信されるすべてのバイトと、必要なものをダウンロードするために応答されるすべてのバイトをどのように追跡できるかということです。言い換えれば、webclient を webbrowser として機能させ、ソースを見て必要な部分に到達したら、必要なデータを解析できるようにする必要があります。

誰かがその方法の例を見せてくれれば幸いです。Google chrome は、多くの情報を表示するのに非常に優れています。 ここに画像の説明を入力

前もって感謝します、

アントニオ

4

1 に答える 1

1

あなたの質問に答える:

  1. トラフィックを追跡するために私が知っている最高のユーティリティはFiddler (無料) です。
  2. 高度な HTTP リクエストを送信するには、 class を使用する必要があります。これには、System.Net.HttpWebRequestプロパティCookieContainer、およびもありHeaders、必要なことを何でも実行できます。

それが役に立てば幸い。

于 2012-08-22T20:32:41.267 に答える