需要帮助从C#中的HTML页面中提取标签

时间:2011-05-19 08:21:25

标签: c# html

我想从远程HTML页面加载一个标签的值。我已经通过加载整个页面而不是使用正则表达式来完成此操作。我发现了所需的结果,但这种方法非常慢我希望它能够快速加载标签值而不是整个网页。有什么建议吗?

这就是我现在正在做的事情:

using (var client = new WebClient())
{
    string result = c          client.DownloadString("http://web.archive.org/http://profiles.yahoo.com/italy_");
    var regex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*",
                          RegexOptions.Compiled);
    var s = result;
    foreach (Match email in regex.Matches(s))
    {
        // Console.WriteLine(email.Value);
        label2.Text = email.Value;
    }
}

2 个答案:

答案 0 :(得分:2)

您必须加载整个页面 - 这就是http请求通常的工作方式。

也许你的正则表达式可以改进?不过我的专业领域,抱歉。

答案 1 :(得分:2)

  

我找到了理想的结果但是这个   方法很慢我想要它   快速加载标签值不是   整个网页。

几点想法:

  • 我的经验中,Archive.org通常很慢。我的猜测是你的瓶颈。

  • 不,除非他们具有能够返回更多特定数据的响应机制(例如,返回少量返回的支持JSON的Web服务),否则无法仅向第三方页面发出部分请求页面上使用的HTML代码段。)

  • 通过将数据加载到某种HTML解析器而不是使用正则表达式,通常可以更好地解析。