2009-10-28 76 views
2

Folks, 我试图从C#中的网页中提取数据..目前我使用WebReponse的流,我解析它为一个大字符串。这是漫长而痛苦的。有人知道更好的方式从网页提取数据?我说WINHTTP,但不是为C#..提取数据网页

回答

0

如果网页是有效的XHTML,你可以阅读到一个XPathDocument和快速,轻松地直接XPath用自己的方式将数据你要。如果它不是有效的XHTML,我确信有一些HTML分析器可以使用。

找到了一个类似的问题,并提供一个有用的答案。 Looking for C# HTML parser

5

若要从网页上下载的数据更容易使用WebClient

string data; 
using (var client = new WebClient()) 
{ 
    data = client.DownloadString("http://www.google.com"); 
} 

对于解析下载的数据,只要它是HTML,你可以使用优秀的Html Agility Pack库。

而且这里有一个完整的例子提取特定页面中的所有链接:

class Program 
{ 
    static void Main(string[] args) 
    { 
     using (var client = new WebClient()) 
     { 
      string data = client.DownloadString("http://www.google.com"); 
      HtmlDocument doc = new HtmlDocument(); 
      doc.LoadHtml(data); 

      var nodes = doc.DocumentNode.SelectNodes("//a[@href]"); 
      foreach(HtmlNode link in nodes) 
      { 
       HtmlAttribute att = link.Attributes["href"]; 
       Console.WriteLine(att.Value); 
      } 
     } 
    } 
} 
+0

请你多解释一下 – 2013-10-30 20:57:32