C#网页数据采集(一)HtmlAgilityPack

HtmlAgilityPack是.NET下的一个HTML解析类库。支持用XPath来解析HTML。命名空间:HtmlAgilityPack

    HtmlWeb webClient = new HtmlWeb();
    HtmlAgilityPack.HtmlDocument html = webClient.Load("http://news.baidu.com/");//是你需要解析的url这里解析的是百度新闻首页
    var strhtml = html.DocumentNode.InnerText;//获取页面数据
获取下来的页面数据如下图:出现了乱码


解决方法:

    var end = html.Encoding.BodyName;//获取页面编码格式
            var end1 = html.StreamEncoding.BodyName;//当前编码格式
            webClient.OverrideEncoding = Encoding.GetEncoding(end);//设置webClient编码格式为页面编码格式,默认是utf-8
            html = webClient.Load("http://news.baidu.com/");
            var end2 = html.StreamEncoding.BodyName;//当前编码格式


页面已经正常显示,百度页面加载是通过js加载,所以取的数据不完全:标题的链接竟然只是普通的文字,翻到最后发现后续是通过js去加载的数据




HtmlAgilityPack获取的是源代码就是页面组成的代码方式,而不是加载完毕以后完整的页面


你可能感兴趣的:(数据采集)