C# 需要帮助从C中的HTML页面提取标签吗
我想从远程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
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所说,事实上,您必须加载整个页面,除非您可以创建一个新的服务器端页面,该页面通过自定义页面仅返回您所请求的信息。如果您对多个页面执行此操作,则只需编译一次正则表达式并重用它,而不是对处理的每个页面进行重用,这似乎是一种明显的优化。。。