私は毎日 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 は、多くの情報を表示するのに非常に優れています。
前もって感謝します、
アントニオ