【发布时间】:2011-01-24 12:49:45
【问题描述】:
我正在处理 html 文档,如果结果是正确的表格,我会提取表格来解析它们。我对结果感到满意——我的提取过程在超过 95% 的情况下成功地映射了行标签和列标题,在没有成功的情况下,我们可以识别问题并使用其他方法。
在浏览 iternet 时,我了解到浏览器有一个非常强大的“引擎”,可以正确显示 htm 页面的内容,即使底层 htm 格式错误。我们在解析表时遇到的问题与无法将标题与数据行分开,或者无法将行标签与一个或多个相邻数据值分开,然后无法正确解析出相邻数据值有关. (我们可能有两个数据值映射到一个列标题而不是两个相邻的列标题。也就是说,如果我有一个列标题标记为苹果,然后一个标记为香蕉,我可能会将值“1125 12345”分配给香蕉(或苹果)列标题,而不是将值 1125 分配给苹果,将 12345 分配给香蕉。
正如我在开始时所说的那样——我们 95% 的时间都做对了,我们可以在输出中判断何时出现问题。我开始认为我们已经尽可能地使用 html 中的逻辑和推理来清理这些,所以我开始怀疑我是否需要一种新方法。
有没有办法利用浏览器的“引擎”来帮助这个解析器。最终,如果浏览器可以正确显示列和行,以便它们正确显示在屏幕上,那么即使行和列跨度不一致(例如),也有一些技术可以处理。
感谢您的意见
【问题讨论】:
-
您目前使用什么方法来“撕掉”表格?
-
许多方法基本上我正在加载所有表格,然后在某些条件下测试单元格的内容。我这样做是因为我发现与整个文档相比,在不清理 html 的情况下处理表格的可能性更大。