我想从远程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;
}
}
答案 0 :(得分:2)
您必须加载整个页面 - 这就是http请求通常的工作方式。
也许你的正则表达式可以改进?不过我的专业领域,抱歉。
答案 1 :(得分:2)
我找到了理想的结果但是这个 方法很慢我想要它 快速加载标签值不是 整个网页。
几点想法:
我的经验中,Archive.org通常很慢。我的猜测是你的瓶颈。
不,除非他们具有能够返回更多特定数据的响应机制(例如,返回少量返回的支持JSON的Web服务),否则无法仅向第三方页面发出部分请求页面上使用的HTML代码段。)
通过将数据加载到某种HTML解析器而不是使用正则表达式,通常可以更好地解析。