专注ASP.NET和SQLServer2008 BI&GIS

骂别人不革命,便是革命者,则自己不做事,而骂别人的事做得不好,自然便是更做事者。
若与此辈理论,可以被牵连到白费唇舌,一事无成,也就是白活一世,于己于人,都无益处。
我现在得了妙法,是谣言不辩,诬蔑不洗,只管自己做事。——鲁迅1934年6月21日信
posts - 260, comments - 1245, trackbacks - 30, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

c#获得网页中HTML的标题

Posted on 2007-12-24 20:09 aspnetx 阅读(269) 评论(0)  编辑 收藏 所属分类: 资料库存

using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Text;
using System.Net;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            WebRequest oRequest = WebRequest.Create("http://www.baidu.com/");
            WebResponse oResponse = oRequest.GetResponse();

            StreamReader oReader = new StreamReader(oResponse.GetResponseStream(),Encoding.GetEncoding("GB2312"));

            string html = oReader.ReadToEnd();

            Match m = Regex.Match(html, "<title>(.*)</title>");

            if (m.Groups.Count == 2)
                Console.WriteLine(m.Groups[1].Value);

            Console.ReadLine();
        }
    }
}

这段代码适合取出HTML下指定标记块下的内容,但是由于HTML很难严格的说其是结构化的数据,所以并不是所有的标记内容都能取出,比如网页中会存在多个<td></td>,那么要取的内容存在于哪对标记中就很难判断.
应用到的命名空间:
using System.Net.其下有WebRequest和WebResponse
using System.IO.用到StreamReader
using System.Text.RegularExpressions.正则表达式,比截取字符串要好用的多


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-12-25 08:10 编辑过


相关链接:

历史上的今天:
2006-12-24 vista试用体验笔记