如何通过 AngularJS 生成的 c# 页面 html 进行检索

本文关键字:html 页面 检索 何通过 AngularJS | 更新日期: 2023-09-27 18:36:47

我需要检索使用AngularJS处理一些信息并生成图形的页面的HTML代码。我可以使用WebRequest轻松检索html代码,如下例所示,但是AngularJS生成的内容(图形)不在页面代码中。

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();
}

有没有人经历过这种情况?

提前感谢您的支持。

如何通过 AngularJS 生成的 c# 页面 html 进行检索

Page_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;
}

整个页面包含在名为 panelasp:Panel中。这种工作方式来自RenderControl()方法,您可以在此处阅读更多内容。简而言之,它获取asp:Panel标签(整个页面)中的所有内容,一旦在执行Page_Load事件后使用,它将获取页面的所有原始 HTML。

有一个名为PhantomJS的库,它首先将js从站点上渲染出来,然后你可以在渲染后获取源代码。但显然,如果你做很多网站,它也会减慢这个过程