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

C# 需要帮助从C中的HTML页面提取标签吗,c#,html,C#,Html,我想从远程HTML页面加载一个标签的值。我通过加载整个页面并使用正则表达式来实现这一点。我找到了想要的结果,但是这个方法非常慢,我希望它只快速加载标签值,而不是整个网页。有什么建议吗 这就是我目前正在做的: using (var client = new WebClient()) { string result = c client.DownloadString("http://web.archive.org/http://profiles.yahoo.com/ital

我想从远程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;
    }
}

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


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

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

也许你的正则表达式可以改进?抱歉,这不是我的专长

我找到了想要的结果,但是这个 方法非常慢,我希望它 仅快速加载标签值,而不是 整个网页

两个想法:

根据我的经验,Archive.org通常非常慢。我猜这是你的瓶颈

不,没有一种方法只能向第三方页面发出部分请求,除非他们有一个能够返回更具体数据的响应机制,例如,一个支持JSON的web服务,它返回页面上使用的HTML的小片段

通过将数据加载到某种HTML解析器中,而不是使用正则表达式,您通常在解析方面会有更好的运气

我找到了想要的结果,但是这个 方法非常慢,我希望它 仅快速加载标签值,而不是 整个网页

两个想法:

根据我的经验,Archive.org通常非常慢。我猜这是你的瓶颈

不,没有一种方法只能向第三方页面发出部分请求,除非他们有一个能够返回更具体数据的响应机制,例如,一个支持JSON的web服务,它返回页面上使用的HTML的小片段

通过将数据加载到某种HTML解析器中,而不是使用正则表达式,您通常在解析方面会有更好的运气


正如Nathan所说,实际上你必须加载整个页面,除非你可以创建一个新的服务器端页面,通过自定义页面只返回你所请求的信息。如果你对多个页面执行此操作,那么只编译一次正则表达式并重用它,而不是对处理过的每个页面,这似乎是一个明显的优化…正如Nathan所说,事实上,您必须加载整个页面,除非您可以创建一个新的服务器端页面,该页面通过自定义页面仅返回您所请求的信息。如果您对多个页面执行此操作,则只需编译一次正则表达式并重用它,而不是对处理的每个页面进行重用,这似乎是一种明显的优化。。。