Skip to main content
 首页 » 编程设计

c#之你能给我一个 WebClient 下载网站源代码并异步过滤某些内容而不卡住 GUI 的示例吗

2024年02月03日25落叶无声

我已经阅读了 MSDN 上的一些文章,但它们并不是我现在所需要的。

你能给我展示一个简单的应用程序,它可以异步下载网站 (WebClient.DownloadDataAsync),然后过滤网站的 TITLE 标签吗?

我这辈子都做不到,我只是想看看一个清晰的模型。

请您参考如下方法:

您可能会发现使用 DownloadStringAsync 更容易。这样,您就可以将 HTML 解析为字符串,而不必自己处理编码。

至于如何解析标题,您可能会发现这有点困难,因为 .NET 没有内置的 HTML 解析器。您可以尝试一些 RegEx 或使用 XMLReader,但如果您的内容格式不正确或棘手,这些可能会出现问题。

var client = new WebClient(); 
client.DownloadStringCompleted += (s, args) => { 
    if (args.Error == null && !args.Cancelled) { 
        var regex = new Regex("<title>(?<title>.*?)</title>"); 
        var match = regex.Match(args.Result); 
        if (match.Success) 
        { 
            var myTitle = match.Groups["title"].Value; 
            // ...  
        } 
    } 
}; 
client.DownloadStringAsync(url);