`
cloudtech
  • 浏览: 4618072 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

C#使用正则表达式提取网页中的信息数据

 
阅读更多

大家好,今天来分享一下在ASP.NET中如何通过正则表达式的使用来获取HTML的信息。 如我们所知,网页中经常会包含一些非常有用的信息,比如网页标题(title),文本(text),图片(image),链接(link),表格(table),一些搜索引擎的工程师很可能需要关注这方面的信息,通常他们需要在网页中查询一些关键字,图片等信息。

这里介绍一下怎么在.NET中通过正则表达式快速的获取这些信息, 我们需要在VS2010中建立一个空的web应用程序:

首先需要制作一个源页面,本页面包含一些基本信息,也就是需要获取信息的源页面,这里这个页面包括文本,脚本,图片和链接等信息。

[本示例完整源码下载(0分)] http://download.csdn.net/source/3450356

在本项目中页面的头部都需要设置AutoEventWireup属性,

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SourcePage.aspx.cs" Inherits="CSASPNETStripHtmlCode.SourcePages" %>

AutoEventWireup 属性被设置为 true时该页框架将自动调用页面的事件,在本例中如果不这样设置,第二次执行获取HTML代码的方法将会失败。

SourcePage.aspx

添加一个Default.aspx页面 我们将从这个页面中访问SourcePage并从中提取需要的信息, 先来看看它的页面信息,包括一个多行的TextBox和几个Button,Button用于获取页面的资源信息并且置于TextBox中. 同样,在页面头部的page信息也将加上AutoEventWireup属性:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CSASPNETStripHtmlCode.Defaults" %>

Default.aspx (HTML):

最后一步,就是写正则表达式获取HTML代码的方法了。

首先我们需要的获取整个页面的HTML代码,通过HttpWebRequest和HttpWebResponse类访问源页面的代码并用StreamReader读取并返回string类型的变量。

接着我们可以对HTML代码进行解析和截取,本例中btnRetrievePureText用于获取纯文本,btnRetrieveSriptCode用于获取脚本信息(不常用),btnRetrieveImage用于获取图片信息,btnRetrievelink用于获取链接,当然你可以改变正则表达式的内容和方法,获取你想要的其他信息:

下面是完整代码

Default.aspx.cs

本例中的两个重点:

第一,介绍如何使用WebRequest.Create()和WebResponse.GetResponseStream()获取Web page内容,通过StreamReader.ReadToEnd()方法返回HTML字符串。

第二,使用Regex.Match()和Regex.Replace()两个基本的方法,获得指定的内容。至于正则表达式的写法这里就不详细介绍了,可以从网上查看到很多这方面的信息。

这只是一个简单的获取和解析HTML代码的例子,欢迎大家补充指正。

分享到:
评论

相关推荐

    C#正则表达式提取网页数据

    C#语言实现采用正则表达式提取网页上需要的数据,并将数据存储到数据库sql sever 2005

    c#正则表达式截取指定字符串之间的字符串。类文件直接用就可以了~

    给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...

    C# 正则应用之——最全的日期正则表达式 没有之一

    日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写出的正则也不同,复杂程度也自然不同。正则的书写需要根据具体情况具体分析,一个基本原则就是:只写合适的,不写复杂的。 对于...

    SQL 语法分析,正则表达式解析C#文件;正则表达式实现的语法分析引擎

    一些资料关于 SQL 语法分析;用正则表达式解析C#文件;使用正则表达式实现的语法分析引擎(C#源代码) ;SQL Server 2005正则表达式使模式匹配和数据提取变得更容易;

    C# 最全的日期正则表达式,没有之一

    考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2...

    18.C#字符串和正则表达式参考手册 影印版

    C#字符串和正则表达式参考手册 目 录 第1章 系统处理文本的方式 1 1.1 .NET Framework 1 1.1.1 公共语言运行时 2 1.1.2 .NET Framework类库 3 1.2 文本是一种数据类型 4 1.2.1 C#的数据类型 5 1.2.2 字符和字符集 6 ...

    C# 采集器 C# 信息采集器 C#正则表达式实例

    C# 信息采集器,通过网络访问获得数据源,然后通过正则表达式提取数据。也是C#正则表达式应用实例。 运行截图和说明:http://www.our-code.com/news/2010913/n5499115.html

    正则表达式经典实例

    书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、...

    正则表达式

    如果想在正则表达式中使用特殊的标点符号,必须在它们之前加上一个 "\" . 2.字符类 将单独的直接符放进中括号内就可以组合成字符类.一个字符类和它所包含的任何一个字符都匹配,所以正则表达式 / [abc] / 和字母 ...

    正则表达式经典实例.pdf

    书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、...

    Java利用正则表达式提取数据的方法

    最近由于项目需求需要提取txt里的数据,之前用C#实现过,由于最近学习了java,所以尝试用java实现下,这篇文章主要介绍了Java利用正则表达式提取数据的方法,需要的朋友可以参考下,下面来一起看看吧。

    C#中如何利用正则表达式判断字符

    废话不多说了,下面代码给大家介绍下利用正则表达式判断字符的方法,具体代码如下所示: using System; using System.Text.RegularExpressions; using System.NET; namespace 正则表达式检测字符串 { class ...

    ASPNETStripHtmlCode

    C#使用正则表达式提取网页中的信息数据 包括 网页标题(title),文本(text),图片(image),链接(link),表格(table)

    C#实现文本文件中数据提取,类似于C++中“>>”操作

    一直很怀念 C++语言中“&gt;&gt;”操作符提取数据的便利性,但可惜C#没有相应机制。 为此,特地采用C#实现从文本文件中提取出数据(如浮点型),可以自动适应单个或多个空白符(空格、\t、\r、\n等)或逗号作为分隔符,可以...

    匹配正则表达式

    对文本(html)代码提取数据

    C#爬取国家统计局省市区街道2020最新数据

    1、使用WebRequest爬取到页面数据 2、使用正则表达式中的贪婪模式、分组等技术提取有用数据 3、使用EF6保存到MSSQL数据库

Global site tag (gtag.js) - Google Analytics