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

简介:

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

获取网页的html代码

处理网页html
[csharp] view plain copy print ? 在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 plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);  


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

解决NSoup解析HTML乱码的办法

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


[csharp] view plain copy print ? 在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 plain copy print ? 在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

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



















本文转蓬莱仙羽 51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1390551,如需转载请自行联系原作者

相关文章
|
9月前
|
IDE API 开发工具
拦截|篡改|伪造.NET类库中不限于public的类和方法
本文除了回顾拦截.NET类库中的方法,实现方法参数的篡改、方法返回结果的伪造,再着重介绍.NET类库中非public类及方法如何拦截。
拦截|篡改|伪造.NET类库中不限于public的类和方法
|
25天前
|
存储 Go C#
【.NET Core】深入理解IO之File类
【.NET Core】深入理解IO之File类
33 6
|
24天前
|
数据采集 安全 C#
.NET快速实现网页数据抓取
今天我们来讲讲如何使用.NET开源(MIT License)的轻量、灵活、高性能、跨平台的分布式网络爬虫框架DotnetSpider来快速实现网页数据抓取功能。
|
24天前
|
存储 开发框架 缓存
【.NET Core】你真的了解HttpRuntime类吗
【.NET Core】你真的了解HttpRuntime类吗
14 0
|
30天前
|
消息中间件
.NET 中 Channel 类简单使用
`System.Threading.Channels` 提供异步生产者-消费者数据结构,用于.NET Standard上的跨平台同步。频道实现生产者/消费者模型,允许在任务间异步传递数据。简单示例展示如何创建无界和有界频道,以及多生产者和消费者共享频道的场景。频道常用于内存中的消息队列,通过控制生产者和消费者的速率来调整系统流量。
|
1月前
|
SQL 数据库连接 数据库
VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
140 0
|
9月前
|
JavaScript 前端开发 安全
[HackerScreenSaver]退出屏保前玩一把游戏吧!webBrowser中网页如何调用.NET方法
本文主要以 HackerScreenSaver 新功能的开发经历介绍 webBrowser中网页如何调用.NET方法的过程。
45 0
[HackerScreenSaver]退出屏保前玩一把游戏吧!webBrowser中网页如何调用.NET方法
|
10月前
|
开发框架 前端开发 .NET
ASP.NET Core 基础知识之​Startup 类配置
Startup 类配置服务和应用的请求管道。
121 0
.NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
.NET Core反射获取带有自定义特性的类,通过依赖注入根据Attribute元数据信息调用对应的方法
134 0
|
开发框架 JSON 前端开发
【C#】.net core2.1,自定义全局类对API接口和视图页面产生的异常统一处理
在开发一个网站项目时,异常处理和过滤功能是最基础的模块 本篇文章就来讲讲,如何自定义全局异常类来统一处理
219 0

相关实验场景

更多