Htmldocument Load返回Null

时间:2014-07-08 02:16:32

标签: c# html-agility-pack

此代码适用于其他网站,但当我让步时:" http://www.aedn.org/page/1"加载null。请你帮我。

        string Way = Url + PageNumber.ToString();

        HtmlWeb Source = new HtmlWeb();
        HtmlDocument Doc = Source.Load(Way);

        List<Movie> MovieList = new List<Movie>();

2 个答案:

答案 0 :(得分:0)

这是因为您使用的URL是使用HTTP 302响应标头重定向到另一个URL - 浏览器为您重定向,但HtmlAgilityPack不会。

随后的请求将起作用,因为响应包含cookie。

你可以验证这个,例如在新的隐身浏览器窗口中使用Fiddler

答案 1 :(得分:0)

我们知道,html页面可能有不同的编码。 所以,你可以使用C#类WebClient获取html源代码 然后使用htmlagilitypack来解析html源代码。

WebClient webClient = new WebClient();
webClient.Headers.Add(HttpRequestHeader.AcceptEncoding, "UTF-8");
byte[] b = webClient.DownloadData(url);    
MemoryStream ms = new MemoryStream(b);
HtmlDocument Doc = new HtmlDocument();
Doc.load(ms,"UTF-8");