HAP不适用于一个特定的URL

时间:2015-03-03 19:53:22

标签: html-agility-pack

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

[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?

1 个答案:

答案 0 :(得分:1)

网站不会返回content-type标头,这是HtmlWeb类忽略结果的提示。

这是负责的方法:

  

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

enter image description here

如果您使用HttpClient课程并将内容提供给应该有效的Document.LoadHtml课程。或者要求网站所有者返回正确的标题。

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;