【问题标题】:which layout engine for finding coordinates of html elements on the web page?哪个布局引擎用于在网页上查找 html 元素的坐标?
【发布时间】:2010-04-24 19:28:47
【问题描述】:

我正在做一些网络数据分类任务,并且正在考虑是否可以在不考虑任何 css 或 javascript 的情况下获得 html 元素的坐标,因为它们会出现在网络浏览器上网页中提到。

我的编程语言是 c++,需要几百万页的结果,所以它必须要快。我知道有一个 Microsoft COM 组件可以在 Web 浏览器控件中呈现页面,然后可以查询不同 html 标记的位置。但这不适用于我的情况,因为它首先呈现整个页面,这会占用大量时间。

所以我发现,有开源布局引擎 WebKit、Gecko 可能可以用于此。但这是一段巨大的代码,我需要有人将我引导到正确的类或正确的模块以查看或任何以前/以前做过的类似工作。另外,如果我想自定义现有代码以用于多线程以使其更快,请告诉我你们认为什么是不错的选择。

谢谢

【问题讨论】:

  • 你有没有HTML本身没有指定布局细节的问题(即这一切都取决于布局引擎的默认值)?
  • 也许我忘了说,元素之间的相对位置在我的例子中更为重要,如果你注意到,大多数浏览器以几乎相似的方式呈现网页。所以使用哪个渲染引擎并不重要,重要的是我得到它渲染的元素的位置坐标。

标签: c++ html webkit gecko


【解决方案1】:

通常,您会发现不同的页面渲染引擎确实以自己的方式渲染 html,结果会有所不同。

问题是,如果您坚持使用任何具体的浏览器引擎,您要做的就是以某种方式将该引擎引入您的项目并使用引擎的界面来检索这些坐标。不过这是一项艰巨的任务,因为您必须阅读大量文档并浏览数千个文件。

我认为正确的方法是在某个位置发布此任务,该位置特定于您选择的页面呈现引擎。 (壁虎/webkit/...)

如果您更喜欢坚持特定于 MS 的内容,猜想它会更容易,但无法帮助您处理您想查看的类名或代码块之类的内容。在这种情况下,可能其他人可以指导您。

【讨论】:

  • 正如我所提到的,使用哪个渲染引擎或者它们是否以不同方式渲染并不重要,重要的是它将渲染的元素的位置以及集成到我的代码中的难易程度。我同意,我的结果会因我使用的引擎有偏见。我认为在各自的论坛上发帖是个好主意。但我仍然愿意接受进一步的 cmets 和建议。谢谢
  • 嗯,忘了提...我不太确定您的实际目标,但我认为,在深入研究 Web 引擎的代码之前,您实际上应该考虑渲染器之间的所有这些差异。因为即使在简单 html 的情况下,网页设计师也经常制作不同的布局,为不同的浏览器应用修复等......想象一下,当涉及到 JavaScript 时,渲染看起来会有多么不同。甚至窗口宽度或浏览器工具栏的启用/禁用都可能影响元素定位。我想这是计划您的应用程序应该花费大量时间的情况
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多