我目前在Windows窗体应用程序中使用WebBrowser控件导航到URL。在我访问该网址后,我将FirstChild
与NextSibling
类的HtmlElement
方法结合使用,从WebBrowser.Document
对象中移动文档树。
我这样做的原因是从页面获取信息并将此信息存储到数据库中。
以下是我的问题的关键:我真的需要使用WebBrowser
课吗?我目前不需要向用户显示网页,只需要在页面中找到一些信息。
有没有更好的方法来做到这一点而不依赖这个类?可能需要一些可以进行DOM遍历的实体,但如上所述,我不需要显示网页。
此致 Crouz
答案 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。