2011-07-13 14 views
2

C#アプリケーションでWebブラウザに表示されるhtmlコンテンツをキャプチャする方法を知りたいです。私はHTML Agilityパックを使用しました。私の知識がtrueの場合キャプチャウェブブラウザのページを表示HTMLAgilityを使用しているHTMLソース

htmlWeb hw = new HtmlWeb(); 
     if (txtCurrentURL.Text == "") 
     { 

      MessageBox.Show(" Enter Web Address to Process "); 
     } 
     else 
     { 
      HtmlAgilityPack.HtmlDocument htmlDoc = hw.Load(@txtCurrentURL.Text); 
      if (htmlDoc.DocumentNode != null) 
      { 
      try 
      { foreach (HtmlNode text in htmlDoc.DocumentNode.SelectNodes(txtExpression.Text)) 
        { 
         _items.Add(text.InnerHtml); 
         richTextResults.Text = text.InnerHtml; 
        } } 

       catch 
       { MessageBox.Show(" No Usefull Data found"); 
       } 
        lstBxResult.DataSource = _items; 
      } 
     } 

txtCurrentUR.Text以下の私のコードは私のWebブラウザcurrenltyが表示されたURLアドレスです。

私が間違っていない場合、HTMLAgilityの結果は、Webサーバーのコンテンツにアクセスするのではなく、HTMLagilityクラスを使用して前述のURLに接続した結果です。 。だから私の問題は、ページにログインや受信トレイのようなログイン後にしかアクセスしないページが必要な場合、ユーザーアカウントページは敏捷性にエラーを表示していないということです。私たちはWebブラウザでこれを簡単に表示することができ、URlを接続せずにAgilityを使ってブラウザに表示されるデータをキャプチャしたいのですが、どうすればいいのか分かりません助けて ??

答えて

1

私が正しく理解していれば、あなたの使いたいものはCookiesコレクションです。

private HtmlWeb CreateWebRequestObject() 
{ 
    HtmlWeb web = new HtmlWeb(); 
    web.UseCookies = true; 
    web.PreRequest = new HtmlWeb.PreRequestHandler(PreRequestStuff); 
    web.PostResponse = new HtmlWeb.PostResponseHandler(AfterResponseStuff); 
    web.PreHandleDocument = new HtmlWeb.PreHandleDocumentHandler(PreHandleDocumentStuff); 
    return web; 
} 
関連する問題