如何通过AngularJS生成的c#页面html检索
我需要检索一个页面的HTML代码,该页面使用AngularJS处理一些信息并生成一个图形。我可以使用WebRequest轻松检索html代码,如下例所示,但AngularJS生成的内容(图形)不在页面代码中如何通过AngularJS生成的c#页面html检索,c#,html,angularjs,webrequest,C#,Html,Angularjs,Webrequest,我需要检索一个页面的HTML代码,该页面使用AngularJS处理一些信息并生成一个图形。我可以使用WebRequest轻松检索html代码,如下例所示,但AngularJS生成的内容(图形)不在页面代码中 WebRequest request = WebRequest.Create("http://localhost:36789/minhaapp#/index"); WebResponse response = request.GetResponse(); Stream data = resp
WebRequest request = WebRequest.Create("http://localhost:36789/minhaapp#/index");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
有人经历过这种情况吗
提前感谢您的支持。在
页面加载
方法的末尾,调用此getHTMLContent()
方法:public string getHTMLContent()
{
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
panel.RenderControl(hw);
String html = sb.ToString();
return html;
}
整个页面包含在名为
Panel
的asp:Panel
中。其工作方式来自RenderControl()
方法,您可以阅读更多有关该方法的内容。简单地说,它获取asp:Panel
标记(整个页面)中的所有内容,一旦执行page\u Load
事件后使用,它将获取页面的所有原始HTML。在page\u Load
方法的末尾,调用此getHTMLContent()
方法:public string getHTMLContent()
{
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
panel.RenderControl(hw);
String html = sb.ToString();
return html;
}
整个页面包含在名为
Panel
的asp:Panel
中。其工作方式来自RenderControl()
方法,您可以阅读更多有关该方法的内容。简单地说,它获取asp:Panel
标记(整个页面)中的所有内容,一旦执行page\u Load
事件后使用,它将获取页面的所有原始HTML。有一个名为PhantomJS的库,它首先将js呈现出站点,然后在呈现后再获取源代码。但是很明显,如果你在做很多网站的话,这也会减慢这个过程。有一个叫做PhantomJS的库,它首先将js从网站上渲染出来,然后你可以在渲染后获得源代码。但是,如果你在做大量的网站,显然这也会减慢这个过程,因为HTML、CSS和Js必须像在web浏览器中一样进行解释……如果可能的话,我建议你从JSON/XML端点加载数据。使用System.Windows.Forms.WebBrowser
,让它加载站点,然后最终从webbrowser获取html。@carlos lemos,你找到了相关的东西吗,我也遇到了这个问题。因为html,CSS和Js必须像web浏览器中的软件一样进行解释……如果可能的话,我建议您从JSON/XML端点加载数据。使用System.Windows.Forms.WebBrowser
,让它加载站点,然后最终从WebBrowser获取html。@carlos lemos,您是否找到相关内容,我也遇到了这个问题。