如何获取由javascript设置的网页的隐藏InnerHtml?

Posted

技术标签:

【中文标题】如何获取由javascript设置的网页的隐藏InnerHtml?【英文标题】:How to get hidden InnerHtml of web page that set by javascript? 【发布时间】:2013-06-10 06:08:21 【问题描述】:

我知道我可以使用此代码获取网页源代码:

browser.DocumentText;

javascript innethtml 函数填充的页面的一些数据在browser.Text 中不可见,但在browser 的输出中可见。

如何获取由 javascript 添加到页面的数据的源代码?

【问题讨论】:

browser是什么数据类型? @gunr2171 是Forms.WebBrowser 【参考方案1】:

如果你知道什么类型的标签包含你想要的内部 HTML,你可以做这样的事情(这个例子循环通过 div 标签,但你可以做 p,或表格单元格,或其他):

HtmlElementCollection collection = browser.Document.GetElementsByTagName("div");

foreach (HtmlElement element in collection) 
    string html = element.InnerHtml;
    string text = element.InnerText;
    // do something with the HTML or text here...

或者如果您知道要获取的元素的具体 ID,请使用:

HtmlElement element = browser.Document.GetElementById("someId123");
if(null != element) // do something with it...

【讨论】:

【参考方案2】:

您可以尝试HtmlAgilityPack 并关注this 的回答。

HtmlWeb webGet = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = webGet.Load(url);

【讨论】:

以上是关于如何获取由javascript设置的网页的隐藏InnerHtml?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取由 Javascript 使用 Java / Webdriver 生成的网页的整个源 html 代码?

如何设置一个DIV在网页中显示几秒然后自动隐藏消失?

Javascript通过Id获取元素并设置值

如何获取网页滚动条滚动事件

如何在 WebBrowser 控件中获取呈现的 html(由 Javascript 处理)?

js实现隐藏网页中的某个元素