HtmlAgilityPack 抓取页面的乱码处理

简介: 利用HtmlAgilityPack抓取页面很方便,但是当页面是gb2312编码时候就会出现乱码,上网查了一下说是默认的获取页面方法不够成熟,具体什么的我也不知道,姑且就认为是不够成熟吧。 HtmlWeb htmlWeb = new HtmlWeb(); HtmlDocument htmlDocument = htmlWeb.

利用HtmlAgilityPack抓取页面很方便,但是当页面是gb2312编码时候就会出现乱码,上网查了一下说是默认的获取页面方法不够成熟,具体什么的我也不知道,姑且就认为是不够成熟吧。

HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDocument = htmlWeb.Load(@url);

 

解决方法如下:

新建一个方法来获取 HtmlDocument,传进来的是抓取页面的地址

       private static HtmlDocument GetHtmlDocument(string url)
        {
            HttpWebRequest httpWebRequest = WebRequest.Create(new Uri(@url)) as HttpWebRequest;
            httpWebRequest.Method = "GET";
            WebResponse webResponse = httpWebRequest.GetResponse();
            Stream stream = webResponse.GetResponseStream();
            HtmlDocument htmlDocument = new HtmlDocument();
            htmlDocument.Load(stream);

            return htmlDocument;
        }

 

根据@无机の剑 的评论,用这个属性就解决了(O(∩_∩)O~):

HtmlWeb htmlWeb = new HtmlWeb(); 
htmlWeb.OverrideEncoding = Encoding.GetEncoding("gb2312");

 

 这样就可以啦!至于后面的使用方法都一样,具体可以参考这个博客,讲的很详细哈 http://www.cnblogs.com/linfei721/archive/2013/05/08/3066697.html

相关文章
|
5月前
分别利用phantomjs和slimerjs实现网页的爬取和截图代码逻辑
文章介绍了如何使用PhantomJS和SlimerJS两种工具实现网页的爬取和截图,提供了具体的代码示例和执行命令。
35 0
|
8月前
|
数据采集 API C#
网页解析高手:C#和HtmlAgilityPack教你下载视频
使用C#和HtmlAgilityPack解析小红书网页,下载其视频内容。文章涵盖了解析网页、获取视频链接、C#实现、HtmlAgilityPack简化解析、代理IP确保下载稳定及多线程提高下载效率。提供的代码示例展示了如何设置代理和多线程下载视频。实验结果显示,该方法能有效、高效地下载小红书视频。
152 5
网页解析高手:C#和HtmlAgilityPack教你下载视频
|
8月前
|
XML 存储 开发框架
c#教你网站数据轻松解析抓取,HtmlAgilityPack解析的奇妙之处
c#教你网站数据轻松解析抓取,HtmlAgilityPack解析的奇妙之处
244 0
|
8月前
|
缓存 网络协议 前端开发
一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么
一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么
216 0
|
Web App开发
Chrome 无法抓取跳转请求的解决办法
Chrome 无法抓取跳转请求的解决办法
185 0
|
网络协议 前端开发 JavaScript
一个浏览器从加载URL到页面展示出来,经过了哪些步骤?
一个浏览器从加载URL到页面展示出来,经过了哪些步骤?
|
开发框架 移动开发 前端开发
如何使用C#和HTMLAgilityPack抓取网页
HTMLAgilityPack是一款备受欢迎的用于解析和操作HTML文档的库。在使用之前,开发者需要考虑一些优缺点。下面是一些值得注意的优点: 1. 强大的错误容忍性 2. 灵活的API 3. 广泛的应用场景 然而,也有一些缺点需要考虑: 1. 性能问题 2. 对最新HTML特性的支持限制 3. 可能存在依赖和冲突
139 0
|
Web App开发 JavaScript 安全
window.open(url)多次打开下载链接被浏览器拦截问题解决方案,js实现循环访问多个下载链接
window.open(url)多次打开下载链接被浏览器拦截问题解决方案,js实现循环访问多个下载链接
817 0
window.open(url)多次打开下载链接被浏览器拦截问题解决方案,js实现循环访问多个下载链接
|
前端开发 JavaScript 编译器
使用Skypack在浏览器上直接导入ES模块
使用Skypack在浏览器上直接导入ES模块
314 0
使用Skypack在浏览器上直接导入ES模块