[ASP.NET]强大的网页处理类NSoup

来源:互联网 发布:淘宝网代理怎么做 编辑:程序博客网 时间:2024/05/24 07:18

我们如果在项目中碰到要处理HTML,如果是.NET程序员的话,强烈推荐使用NSoup,不然的话截取字符串是在是太痛苦了。NSoup是一个开源框架,是JSoup的.NET移植版本,使用方法基本一致!NSoup点击下载

获取网页的html代码

处理网页html
[csharp]view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <span style="font-family: Arial, Helvetica, sans-serif;">NSoup.Nodes.Document doc = NSoup.NSoupClient.Connect("http://blog.csdn.net/dingxiaowie2013").Get();</span>  

或者是自定义html,生成html页面
[csharp]view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);  


但是很遗憾NSoup默认的是UTF-8,处理中文会有乱码(对于编码是UTF-8自然会正常,但是有些是GB2312的就可能有乱码)

解决NSoup解析HTML乱码的办法

1.下载网页源代码再处理


[csharp]view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. //下载网页源代码

  2. WebClient webClient = new WebClient();  

  3. string htmlString = Encoding.GetEncoding("utf-8").GetString(webClient.DownloadData("http://www.baidu.com"));  

  4. NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(htmlString);  


2.获得网页的流



[csharp]view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. //获得网页流

  2. WebRequest webRequest = WebRequest.Create("http://blog.csdn.net/dingxiaowei2013");  

  3. NSoup.Nodes.Document doc1 = NSoup.NSoupClient.Parse(webRequest.GetResponse().GetResponseStream(), "utf-8");  



效果图


wKiom1M-VEqxqQFeAAHTCTF-Mfw792.jpg

wKioL1M-VCKQ6BtbAAZOQ5VSGP4811.jpg

会发现跟百度的源码是一样的


==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:375151422,858550,6348968         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================





4 0