0%

提取网页标题

  • 来源:明日科技
  • 提取网页标题

    实例说明

    本实例实现了根据网址提取HTML网页标题的功能。运行程序,在文本框中输入正确的网址,单击”提取”按钮,即可将网页的标题显示在下面的文本框中。运行结果如图1所示。

    图1 提取网页标题

    技术要点

    实现本实例功能主要用到了
    System.Net命名空间下的
    WebRequest类的Create方法、GetResponse方法、
    WebResponse类的GetResponseStream方法、
    StreamReader System.Text.RegularExpressions命名空间下的Regex类的IsMatch方法、Match方法、
    System.IO命名空间下的StreamReader类的ReadLine方法和Stream类。
    System.Net命名空间下的类和方法、system.Text.RegularExpressions命名空间下类和方法在前面已经做过介绍,详细说明请参见实例515。
    这里主要讲解一下Regex类的Match方法、System.IO命名空间下的StreamReader类和Stream类。

    (1)Match方法 此方法在指定的输入字符串中搜索pattern参数中提供的正则表达式的匹配项。其语法格式如下:

    public static Match Match (string input,string pattern)

    参数说明如下。

    l input:要搜索匹配项的字符串。

    l pattern:要匹配的正则表达式模式。

    l 返回值:一个正则表达式的Match对象。

    (2)System.IO命名空间 System.IO命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。
    (3)StreamReader类 此类实现一个TextReader,使其以一种特定的编码从字节流中读取字符。
    (4)ReadLine方法 此方法从当前流中读取一行字符并将数据作为字符串返回。其语法格式如下:

    public override string ReadLine ()

    l 返回值:输入流中的下一行;如果到达了输入流的末尾,则为空引用。

    (5)Stream类 此类提供字节序列的一般视图。

    实现过程

    (1)新建一个Windows应用程序,将其命名为”提取网页标题”,默认窗体为Form1。 (2)在Form1窗体中主要添加两个TextBox控件,用于输入网址和显示网页标题信息;添加一个Button控件,用来执行提取网页标题信息的操作。
    (3)主要程序代码。 提取网页标题的实现代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    private void button1_Click(object sender, EventArgs e)

    {

    if (textBox1.Text == "") //如果文本框为空

    { MessageBox.Show("请输入网址"); return; } //提示输入网址

    else
    {

    if (ValidateDate1(textBox1.Text.TrimEnd()))

    {

    string strl; //存储编码

    WebRequest wb = WebRequest.Create(textBox1.Text.Trim()); //请求资源

    WebResponse webRed = wb.GetResponse(); //响应请求

    Stream redweb = webRed.GetResponseStream(); //返回数据存入流中

    StreamReader sr = new StreamReader(redweb, Encoding.Default); //从流中读出数据

    StringBuilder sb = new StringBuilder(); //可变字符

    while ((strl = sr.ReadLine()) != null)

    {

    sb.Append(strl); //读出数据存入可变字符中

    }

    Getstr(sb.ToString()); //调用正则表达式方法读出标题

    }

    else { MessageBox.Show("请输入正确的网址"); return; }; //网址不合法则提示输入正确网址

    }

    }

    自定义方法Getstr用来实现提取网页标题功能。代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void Getstr(string strUrl)        //自定义方法用于获取网页标题

    {

    string d = @"<title>(?<title>[^<]*)</title>"; //设置提取的类型

    textBox2.Text = Regex.Match(strUrl, d).ToString();       //获取网页标题

    }
    觉得文章有用?请我喝杯咖啡~