1

過去2か月間、WebクローラーアプリケーションでHtmlAgilityPackを使用していますが、Webページの読み込みに問題はありません。

この特定のWebページを読み込もうとすると、ドキュメントOuterHtmlが空になるため、このテストは失敗します。

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", pageHtml);

設定など問題なくサイトから別のページを読み込めます

url = "http://www.prettygreen.com/news/";

過去に私はかつてエンコーディングに問題がありましたが、運が悪かったのでhtmlWeb.OverrideEncodingとhtmlWeb.AutoDetectEncodingをいじってみました。このウェブページで何が問題になるのかわかりません。

4

1 に答える 1

11

このウェブサイトではCookieを有効にする必要があるようです。したがって、Webリクエスト用のCookieコンテナを作成すると、問題が解決するはずです。

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
htmlWeb.PreRequest += request =>
    {
        request.CookieContainer = new System.Net.CookieContainer();
        return true;
    };
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", outerHtml);
于 2012-11-16T11:44:08.310 に答える