如何获得完全加载的HTML页面';s代码

本文关键字:代码 页面 HTML 何获得 加载 | 更新日期: 2023-09-27 18:23:37

我想以编程方式解析网站的页面,显然我需要完整的HTML代码。然而,一个网站只能通过直接URL加载一些主页,一旦加载了主页,它就会通过AJAX接收其内容。

我如何才能"像在浏览器中一样"加载页面,让它在所有脚本都完成工作的情况下完全加载?

例如,如果我使用WebBrowser类"像在浏览器中一样"真正打开一个页面,它的DocumentText属性(应该表示DOM内容)只返回初始页面,而没有通过AJAX或类似的方式加载实际内容(在google.com上测试)。这在浏览器中也会发生,要查看实际的HTML,我需要使用开发工具。

更新:答案就在这里,感谢Vladimir Shmidt如何使用.NET';s WebBrowser或mshtml。HTML文档?

DocumentText在加载"根"DOM后不会更新其内容,但Document属性会更新。

如何获得完全加载的HTML页面';s代码

你听说过吗http://webkitdotnet.sourceforge.net/?此外,.net有WebBrowser组件,可用于

我怎样才能"像在浏览器中一样"加载页面?

唯一确定的方法是在浏览器中实际加载页面。这可以通过使用Selenium/WebDriver这样的工具来实现自动化。

从标题来看,您似乎希望在AJAX和javascript检索或生成内容后,在页面中显示完整的HTML。如果是这种情况,浏览器调试器(F12)将具有此功能。在Chrome中,查看"元素"选项卡下。

有一些解决方案。

主要逻辑:

  1. 请求页面
  2. 等待文档完全加载(就绪状态=已完成)
  3. 获取文档内容

我想其中一个简单的方法是使用WebControl,在那里你可以导航到你的url,并等待控件准备好或完成状态。之后,您可以开始解析。

SO上有一个解决方案:htmlagilitypack和动态内容问题