问题同上,怎样提取网页中的数据,如title等标记中的数据,请高手帮助!

解决方案 »

  1.   

    根据URL提取页面的Title,根据网页的charset自动判断Encoding using System;
    using System.Net;
    using System.Text;
    using System.Text.RegularExpressions;class Program
    {
      // 获取网页的HTML内容,根据网页的charset自动判断Encoding
      static string GetHtml(string url)
      {
        return GetHtml(url, null);
      }  // 获取网页的HTML内容,指定Encoding
      static string GetHtml(string url, Encoding encoding)
      {
        byte[] buf = new WebClient().DownloadData(url);
        if (encoding != null) return encoding.GetString(buf);
        string html = Encoding.UTF8.GetString(buf);
        encoding = GetEncoding(html);
        if (encoding == null || encoding == Encoding.UTF8) return html;
        return encoding.GetString(buf);
      }  // 根据网页的HTML内容提取网页的Encoding
      static Encoding GetEncoding(string html)
      {
        string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)";
        string charset = Regex.Match(html, pattern).Groups["charset"].Value;
        try { return Encoding.GetEncoding(charset); }
        catch (ArgumentException) { return null; }
      }  // 根据网页的HTML内容提取网页的Title
      static string GetTitle(string html)
      {
        string pattern = @"(?si)<title(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>(?<title>.*?)</title>";
        return Regex.Match(html, pattern).Groups["title"].Value.Trim();
      }  // 打印网页的Encoding和Title
      static void PrintEncodingAndTitle(string url)
      {
        string html = GetHtml(url);
        Console.WriteLine("[{0}] [{1}]", GetEncoding(html), GetTitle(html));
      }  // 程序入口
      static void Main()
      {
        PrintEncodingAndTitle("http://www.msdn.net/");
        PrintEncodingAndTitle("http://www.cnblogs.com/");
        PrintEncodingAndTitle("http://www.cnblogs.com/skyiv/");
        PrintEncodingAndTitle("http://www.csdn.net/");
        PrintEncodingAndTitle("http://news.163.com/");
      }
    }
    /**//* 程序输出:
    [] [MSDN: Microsoft Developer Network]
    [System.Text.UTF8Encoding] [博客园 - 程序员的网上家园]
    [System.Text.UTF8Encoding] [空间/IV - 博客园]
    [System.Text.UTF8Encoding] [CSDN.NET - 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台]
    [System.Text.DBCSCodePageEncoding] [新闻中心_网易新闻]
    */
      

  2.   

    可以把你们的作品上传到这个网站上,大家一起分享.急求 是男人就下100层游戏........疯狂≮程序员≯网址:
    http://heshengxin.ys168.com/疯狂≮程序员≯群:3733191 
    软件交流群:9951116 
      

  3.   

    在局域网内获取本机的外部IP“ipconfig.exe /all”在局域网中只能获取内部IP, 无法获取本机的外部IP, Dns.Resolve()也一样。经研究, 在局域网中, 仅凭本机的力量是无法获得本机的外部IP的, 必须登录到外网某个服务器, 那个服务器就知道你的IP, 然后你再取回来。
    using System;
    using System.IO;
    using System.Net;
    using System.Text.RegularExpressions;class Test
    {
      // 获取网页的HTML内容
      static string GetPage(string url)
      {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        try
        {
          using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
          {
            using (StreamReader sr = new StreamReader(res.GetResponseStream()))
            {
              return sr.ReadToEnd();
            }
          }
        }
        catch (System.Exception e)
        {
          return e.Message;
        }
        finally
        {
          req.Abort();
        }
      }  // 通过外部网站得到本机的外部IP
      static string GetOuterIP()
      {
        string patt = @"IP: \[(?<IP>[0-9\.]*)\]";
        string url  = "http://www.skyiv.com/info";
        return Regex.Match(GetPage(url), patt).Groups["IP"].Value;
      }  static void Main()
      {
        Console.WriteLine("Inner IP:");
        foreach (IPAddress ip in Dns.Resolve(Dns.GetHostName()).AddressList)
        {
          Console.WriteLine(ip);
        }
        Console.WriteLine();
        Console.WriteLine("Outer IP:");
        Console.WriteLine(GetOuterIP());
      }
    }
    /* 程序输出:
    Inner IP:
    10.0.0.1Outer IP:
    123.173.**.86
    */
      

  4.   

    我的代码是:
       webB.Navigate("http://www.google.com");//webB是浏览器控件
                    
       HtmlElementCollection elems=webB.Document.GetElementsByTagName("title");
    后面不会写了 怎样把 <title>  </title>中的数据显示出来呢 ?
      

  5.   

    用webclient
    http://www.cnblogs.com/anjou/archive/2006/12/25/602943.html