如何在登录后使用HtmlAgilityPack获取Web内容?

时间:2017-07-16 14:48:46

标签: c# webview uwp html-agility-pack

我正在尝试开发一个从我的大学网站获取数据的UWP应用程序

我可以使用WebView登录,现在我尝试提取登录后显示的任何文本

但我尝试使用HtmlAgilityPack提取网页内容,但它改为重定向到登录页面。

这就是我做的事情

private async void GetInfo(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
     HtmlDocument doc = new HtmlDocument();
     HtmlWeb web = new HtmlWeb();
     doc = await web.LoadFromWebAsync(sender.Source.AbsoluteUri);
     var chunks = new List<string>();
     foreach (var item in doc.DocumentNode.DescendantsAndSelf())
     {
         if (item.NodeType == HtmlNodeType.Text)
         {
             if (item.InnerText.Trim() != "")
             {
                 chunks.Add(item.InnerText.Trim());
             }
         }
     }
}

当我查看Visual Studio时,块列表中的所有文本都来自登录页面,而不是登录页面

1 个答案:

答案 0 :(得分:0)

您可以在InvokeScriptAsync中使用WebView来获取Html。使用WebView

登录后,请拨打以下代码
await webView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });

有关详细信息:
查看this回答
LogIn到StackOverflow的Sample app