需要帮助从 C# 中的 HTML 页面中提取标签
本文关键字:提取 标签 HTML 中的 帮助 | 更新日期: 2023-09-27 17:57:11
我想从远程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解析器而不是使用正则表达式来解析时,您会有更好的运气。