如何获得完全加载的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属性会更新。
你听说过吗http://webkitdotnet.sourceforge.net/?此外,.net有WebBrowser组件,可用于
我怎样才能"像在浏览器中一样"加载页面?
唯一确定的方法是在浏览器中实际加载页面。这可以通过使用Selenium/WebDriver这样的工具来实现自动化。
从标题来看,您似乎希望在AJAX和javascript检索或生成内容后,在页面中显示完整的HTML。如果是这种情况,浏览器调试器(F12)将具有此功能。在Chrome中,查看"元素"选项卡下。
有一些解决方案。
主要逻辑:
- 请求页面
- 等待文档完全加载(就绪状态=已完成)
- 获取文档内容
我想其中一个简单的方法是使用WebControl,在那里你可以导航到你的url,并等待控件准备好或完成状态。之后,您可以开始解析。
SO上有一个解决方案:htmlagilitypack和动态内容问题