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获得正确的标题。
答案 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;
}