是否有替代DOM遍历的WebBrowser控件?

时间:2015-11-11 09:12:56

标签: c# winforms visual-studio dom webbrowser-control

我目前在Windows窗体应用程序中使用WebBrowser控件导航到URL。在我访问该网址后,我将FirstChildNextSibling类的HtmlElement方法结合使用,从WebBrowser.Document对象中移动文档树。 我这样做的原因是从页面获取信息并将此信息存储到数据库中。

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

此致 Crouz

1 个答案:

答案 0 :(得分:1)

您可以使用WebClient下载HTML而不显示该页面。然后,您可以使用HTML Agility Pack之类的内容从字符串中创建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 Agility Pack的原因:

  

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

因此没有使用WebBrowser。

来自https://stackoverflow.com/a/4935482/4546874

但是,您可以隐藏WebBrowser。