我可以将一个url加载到WebBrowser控件中并执行登录(基于表单),我看到我需要看到的内容。太好了,现在我想用XPath来获取我需要的数据。
不能用WebBrowser做到这一点(除非你不同意?)所以我使用敏捷包启动新会话,如下所示:
var wc = new WebClient();
wc.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0";
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(wc.OpenRead(url), Encoding.UTF8);
var value = doc.DocumentNode.SelectSingleNode("|//li[@data-section='currentPositionsDetails']//*[@class='description']");
我的值无法检索,因为网站没有将其公开给公众(它想要登录会话)。如何将我的WebBrowser控制会话“传递”到我的WebClient()?研究一些如何发布我的登录信息的方法,这一切看起来都非常复杂。
有什么想法吗? - 谢谢
答案 0 :(得分:0)
您可以使用webBrowser1.Document.Body.OuterHtml
检索正文html字符串,并使用HtmlAgilityPack加载它:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(new StringReader(this.webBrowser1.Document.Body.OuterHtml));
答案 1 :(得分:0)
好的,将此作为答案发布,因为它似乎在其他地方得到回答/讨论。这对像我这样的业余爱好者来说并不容易!