如果我用这个
WebClient client = new WebClient();
String htmlCode = client.DownloadString("http://test.net");
我可以使用敏捷包扫描 html 并获取我需要的大部分标签,但它缺少由 javascript 呈现的 html。
我的问题是,如何使用 c# 获得最终呈现的页面源。运行 javascript 后,WebClient 是否还有更多内容可以获取最终呈现的源?
如果我用这个
WebClient client = new WebClient();
String htmlCode = client.DownloadString("http://test.net");
我可以使用敏捷包扫描 html 并获取我需要的大部分标签,但它缺少由 javascript 呈现的 html。
我的问题是,如何使用 c# 获得最终呈现的页面源。运行 javascript 后,WebClient 是否还有更多内容可以获取最终呈现的源?
仅 HTML Agility Pack 不足以满足您的需求,您还需要一个 javascript 引擎。为此,您可能需要查看 Geckofx 之类的东西,它允许您将功能齐全的 Web 浏览器嵌入到您的应用程序中,而不是允许您在页面呈现后以编程方式访问 dom 的内容。
您需要在应用程序中包装浏览器。
你很幸运!WebKit 有一个 .NET 包装器。 http://webkitdotnet.sourceforge.net/
您可以使用 System.Windows.Forms 中的 WebBrowser 类。
using (WebBrowser wb = new WebBrowser())
{
//Code here
}
https://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser(v=vs.110).aspx