繁体   English   中英

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

[英]Need help extracting label from HTML page in C#

我想从远程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请求通常的工作方式。

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

我发现了所需的结果,但这种方法非常慢我希望它能够快速加载标签值而不是整个网页。

几个想法:

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

  • 不,没有办法只向第三方页面发出部分请求,除非他们有一个能够返回更多特定数据的响应机制(例如,一个支持JSON的Web服务,它返回的小部分HTML用于页)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM