对于DOM遍历,是否有WebBrowser控件的替代方案

本文关键字:控件 方案 WebBrowser DOM 遍历 是否 对于 | 更新日期: 2023-09-27 18:21:38

我当前正在使用Windows窗体应用程序中的WebBrowser控件导航到URL。到达该URL后,我将FirstChildHtmlElement类的NextSibling方法结合使用,以从WebBrowser.Document对象遍历文档树。我这样做的原因是从页面中获取信息,并将这些信息存储到数据库中。

这是我问题的关键:我真的需要使用WebBrowser类吗?我目前不需要向用户显示网页,只需要在网页中找到一些信息。有没有更好的方法在不依赖这个类的情况下做到这一点?需要一些可以进行DOM遍历的实体,但如上所述,我不需要显示网页。

问候Crouz

对于DOM遍历,是否有WebBrowser控件的替代方案

您可以使用WebClient下载HTML而不显示页面。然后,您可以使用类似HTML敏捷包的东西从字符串中创建HTMLDocument

示例:

using (WebClient wc = new WebClient())
{
    string html = wc.DownloadString("http://www.foo.bar/"); // Change as required.
    HtmlAgilityPack.HtmlDocument h = new HtmlAgilityPack.HtmlDocument();
    h.LoadHtml(html);
}

使用HTML敏捷包的原因:

HtmlDocument类是本机IHtmlDocument2 COM接口的包装器。你不能轻易地从字符串中创建它。。。。。

因此并非不使用WebBrowser。

发件人https://stackoverflow.com/a/4935482/4546874.

但是,您可以隐藏WebBrowser。

相关文章: