提问人:muckabout 提问时间:7/14/2010 最后编辑:muckabout 更新时间:1/27/2017 访问量:5799
使用 Chromium/WebKit 从页面获取 DOM
Getting DOM from page using Chromium/WebKit
问:
尝试在渲染后访问页面的 DOM。我不需要查看页面并计划在没有任何 GUI 或交互的情况下以编程方式应用它。
我对后期渲染感兴趣的原因是我想知道对象出现在哪里。一些位置信息是在 HTML 中编码的(例如,通过 offsetLeft),但很多不是。此外,Javascript 可以改变最终定位。我想要尽可能接近用户将看到的位置。
我已经研究了 Chromium 代码,并认为有一种方法可以做到这一点,但没有足够的文档来开始。
简单地说,我会对这样的伪代码感兴趣:
DOMRoot *r = new Page("http://stackoverflow.com")->getDom();
关于起点有什么提示吗?
答:
5赞
Emerick Rogul
7/19/2010
#1
应使用 Chromium 公开的 Web API 包装器;具体而言,WebDocument 类包含所需的功能。你可以这样称呼它:
WebFrame * mainFrame = webView->mainFrame();
WebDocument document = mainFrame->document();
WebElement docElement = document->docElement();
// Manipulate the DOM here using docElement
...
您可以在此处浏览 Chromium 的 Web API 包装器的源代码。虽然没有太多的文档,但头文件的注释相当好,您可以浏览 Chrome 的源代码以查看 API 的实际应用。
开始使用 Chromium 很困难。我建议查看test_shell应用程序。此外,像 Chromium 嵌入式框架 (CEF) 这样的框架简化了在应用程序中嵌入 Chromium 的过程;我在当前的项目中使用了 CEF,我对此非常满意。
评论
0赞
Yi H.
2/23/2012
Chromium 源代码链接已移至此处。
评论