WPF C#,解析htmlAgilityPack中的webbrowser内容

时间:2016-05-07 10:04:17

标签: c# wpf webbrowser-control html-agility-pack

我需要从网站上删除一些数据,我创建了一个webbrowser,允许用户登录并使用搜索工具,一旦他搜索并获得结果列表,我希望能够获取这些数据并执行进一步分析并具有离线访问权限。

正如我所说,最简单的方法是使用网络浏览器,它开箱即用,登录工作,冲浪工作,然后当我到达适当的页面时,webBrowser.Document女巫是{{{ 1}}(如果我是正确的)。 但是htmlAgilityPack请求mshtml.HTMLDocumentClass

从一个解析到另一个的最简单方法是什么?请注意webbroser是WPF webbrowser。

2 个答案:

答案 0 :(得分:3)

不需要临时额外文件,只需从正确的类解析。

string html = (webBrowser.Document as HTMLDocument).documentElement.innerHTML;
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);

从这里开始..快乐报废:)。

答案 1 :(得分:1)

您可以将网站下载为字符串并将其存储在临时文件中,然后使用

将其加载到HtmlAgilityPack.HtmlDocument类中
HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");

或直接来自流:

doc.Load(iostream);

或更直接来自字符串

doc.LoadHtml("<html>...</html>")

我觉得这可能适合你的情况。我相信你的webbrowsercontrol有一个获取完整源代码的方法。