twitter.com的标题

时间:2011-11-30 08:30:08

标签: c# c#-4.0 html-parsing

WebClient x = new WebClient();
string source = x.DownloadString("http://www.facebook.com/");

string title = Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", RegexOptions.IgnoreCase).Groups["Title"].Value;

Console.WriteLine(title);
Console.ReadLine();

我使用上面编写的代码来打印网站的标题。  除了twitter之外,这种方法几乎适用于所有网站。  任何人都可以告诉我如何从twitter.com获得正确的标题。

1 个答案:

答案 0 :(得分:3)

您不应该使用正则表达式来解析(X)HTML。使用针对特定任务的工具,例如Html Agility Pack

private static string GetPageTitle(string url)
{
    HtmlWeb web = new HtmlWeb();
    HtmlDocument doc = web.Load(url);

    var result = doc.DocumentNode
        .DescendantNodes()
        .FirstOrDefault(node =>
            string.Compare(
                node.Name,
                "title",
                StringComparison.InvariantCultureIgnoreCase) == 0);

    return result != null ? result.InnerHtml : string.Empty;
}