1

HttpTestsには、を使用して認証する方法があります

request.Credentials = CredentialCache.DefaultCredentials;

Html Agility Packに似たようなものはありますか?ローカルホストプロジェクトをテストしたいのですが、次のメッセージを受信して​​います。

HTTPエラー401.2-無許可このページを表示することは許可されていません

4

2 に答える 2

8

Jon Gallantのブログを見つけました:http://blog.jongallant.com/2012/07/htmlagilitypack-windows-authentication.html#.UJEQam8xol8

HtmlWebの新しいインスタンスを作成し、UseDefaultCredentialsをtrueに設定する新しいWebProxyを作成し、webloadでdocumentという新しい変数を作成して、URLをGETリクエストに設定し、デフォルトの資格情報を挿入して、アプリケーションのシステム資格情報を取得します。

         var web = new HtmlWeb();
         web.PreRequest = delegate(HttpWebRequest webRequest)
         {
         webRequest.Timeout = 1200000;
         return true;
         };
         var proxy = new WebProxy() { UseDefaultCredentials = true };
         var doc = web.Load("http://localhost:2120", "GET", proxy, 
         CredentialCache.DefaultNetworkCredentials);


        var linksOnPage = from lnks in document.DocumentNode.Descendants()
                          where lnks.Name == "a" &&
                               lnks.Attributes["href"] != null &&
                               lnks.InnerText.Trim().Length > 0 

                          select new
                          {
                              Url = lnks.Attributes["href"].Value,
                              Text = lnks.InnerText
                          };

        linksOnPage.All(t => { Console.WriteLine(t.Text + " : " + t.Url); return true; });
于 2012-10-31T12:12:24.813 に答える
2

Html Agility PackでWindows認証ユーザーを認証する方法はありますか?

いいえ、

Html Agility Pack(HAP)とは正確には何ですか?

これは、読み取り/書き込みDOMを構築し、プレーンXPATHまたはXSLTをサポートするアジャイルHTMLパーサーです。

これは、「Web外」のHTMLファイルを解析できるようにする.NETコードライブラリです。パーサーは、「現実世界」の不正な形式のHTMLに対して非常に寛容です。オブジェクトモデルは、System.Xmlを提案するものと非常に似ていますが、HTMLドキュメント(またはストリーム)用です。

Html Agility Packは、Linq to Objectsをサポートするようになりました(LINQ to Xml Likeインターフェイスを介して)。

サンプルアプリケーション:

ページの修正または生成:ページを好きなように修正したり、DOMを変更したり、ノードを追加したり、ノードをコピーしたりできます。名前を付けてください。

Webスキャナー:一連のXPATHクエリを使用してimg/srcまたはa/hrefsに簡単にアクセスできます。

Webスクレイパー:たとえば、XSLTファイルだけをバインディングとして使用して、既存のWebページをRSSフィードに簡単にスクラップできます。この例を示します。

HTMLアジリティコードの例

于 2012-10-31T11:58:18.723 に答える