HAP 不适用于一个特定 URL

HAP won't work for one specific URL

我已将我的代码简化为以下方法:

[TestMethod]
public void ViaplayCrawl()
{
    var getWeb = new HtmlWeb();
    var documentUrl = getWeb.Load("http://viaplay.dk/");
    var someVar = documentUrl.DocumentNode.SelectNodes("//body").Count;
}

此方法适用于我尝试过的所有其他网页,但似乎对 "viaplay.dk"

无效

我在为 someVar 赋值时得到 NullReferenceException。

有人知道如何使用 htmlagilitypackage 抓取 viaplay.dk 吗?

站点没有 return content-type header,这是 HtmlWeb class 忽略结果的提示。

这是负责的方法:

HtmlAgilityPack.dll!HtmlAgilityPack.HtmlWeb.Get(System.Uri uri, string method, string path, HtmlAgilityPack.HtmlDocument doc, System.Net.IWebProxy proxy, System.Net.ICredentials creds) Line 216 C#

如果您使用 HttpClient class 并将内容提供给 Document.LoadHtml class 应该可以。或者请网站所有者 return 一个合适的 header.

HttpClient client = new HttpClient();
var result = client.GetStringAsync("http://viaplay.dk/").Result;

var doc = new HtmlDocument();
doc.LoadHtml(result);

var someVar = doc.DocumentNode.SelectNodes("//body").Count;