Htmldocument Load Returns Null
本文关键字:Null Returns Load Htmldocument | 更新日期: 2023-09-27 18:11:47
此代码适用于其他网站,但当我让路时:"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>();
这是因为你正在使用的URL使用HTTP 302响应头重定向到另一个URL -浏览器为你做重定向,但HtmlAgilityPack不会。
随后的请求将会工作,因为响应包含一个cookie。
你可以验证这一点,例如使用Fiddler在一个新的隐身浏览器窗口
我们知道,HTML页面可能有不同的编码。所以,你可以使用c#类WebClient获取html源文件然后使用htmllagilitypack解析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");