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;
我已将我的代码简化为以下方法:
[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;