Sex*_*ast 9 google-chrome chromium webviewchromium
我目前正在尝试这样做:一旦网页加载,找出URL是否具有某种模式(比方说www.wikipedia.com/*
),然后,如果是这样,解析该网页的HTML内容就像一个人可以做的BeautifulSoup
,并检查网页是否有一个div
类foo
和id boo
.我知道在哪里可以编写这段代码,也就是说,我在哪里可以访问URL,我需要在哪里听取知道网页已经完成加载,然后我可以查找URL和HTML内容,以及在哪里和我如何解析HTML?
我试过通过代码src/chrome/browser/tab_contents
,我找不到任何合理的地方,我可以做到这一切.
看一下下面的概念应用程序层,它们代表了 Chromium 如何显示网页:
图片来源: https://docs.google.com/drawings/d/1gdSTfvLxbJDbX8oiWo5LTwAmXmdMQvjoUhYEhfhj0-k/edit
不同层的描述如下:
- WebKit: Safari、Chromium 和所有其他基于 WebKit 的浏览器之间共享的渲染引擎。该端口是 WebKit 的一部分,它与平台相关的系统服务(例如资源加载和图形)集成。
- Glue:将 WebKit 类型转换为 Chromium 类型。这是我们的“WebKit 嵌入层”。它是 Chromium 和 test_shell(它允许我们测试 WebKit)这两个浏览器的基础。
- 渲染器/渲染主机:这是 Chromium 的“多进程嵌入层”。它跨进程边界代理通知和命令。
- WebContents:可重用组件,是内容模块的主类。它可以轻松嵌入,以允许将 HTML 多进程渲染到视图中。有关详细信息,请参阅内容模块页面。
- Browser:代表浏览器窗口,它包含多个WebContent。
- 选项卡助手:可以附加到 WebContents 的单个对象(通过 WebContentsUserData mixin)。浏览器将它们的分类附加到它所保存的 WebContentses 中(一个用于网站图标,一个用于信息栏等)。
由于您的目标是按元素和/或类访问和解释网页的 HTML 内容,因此您可以查看使用 Blink 的渲染过程:
渲染器使用Blink开源布局引擎来解释和布局 HTML。
Blink 有一个WebDocument
类,允许您访问网页的 HTML 内容和其他属性:
WebDocument document = GetMainFrame()->GetDocument();
WebElement element = document.GetElementById(WebString::FromUTF8("example"));
// document.Url();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
478 次 |
最近记录: |