可配置HTML信息提取

问题描述 投票:0回答:1

场景:

我正在使用搜寻器进行一些HTML信息提取。现在,大多数提取规则都是硬编码的(不是标签或类似的东西,而是循环,嵌套元素等)

例如,一项常见任务如下:

  1. 获取ID为X的表。如果不存在,则可能存在其他机制,因此请找到触发的信息
  2. 查找包含某些信息的行。通常,匹配项是针对特定列的正则表达式。
  3. 检索不同列中的数据(通常在td中标记,或先前在标题中检测到]

我目前这样做的方式是:

  1. 查询以获取ID为X的第一个表的主体(X在配置文件中)。我列表中的某些网站存在错误,并且在与表-.-
  2. 不同的元素上重复了该ID
  3. 迭代有趣的单元格,在cell.text()上执行regexp(regexp在配置文件中)
  4. 获取匹配单元格的父行,并从该行获取我需要的单元格(该行的标识符在配置文件中)

与所有通用代码解析器相比,大部分都进​​行了硬编码(列名,表ID等除外)为我带来了好处或易于实现,并且效率更高,但是,它的可配置性较差,并且对目标进行了一些更改网站强迫我处理代码,这使任务分配更加困难。

问题

是否有任何language(最好有Java实现),它可以一致地定义提取规则,例如那些规则?我正在使用css样式的选择器来执行某些任务,但其他任务却并非如此简单,因此我的最佳猜测是必须扩展某些内容,以便非程序员维护人员可以按需添加/修改规则。

[如果有的话,我会接受基于Nutch的答案,因为我们正在研究将爬虫迁移到坚果时,尽管我更喜欢通用的Java解决方案。

[我当时正在考虑编写一个解析器生成器并创建我自己的规则集,以允许用户/维护者生成解析器,但确实感觉就像无缘无故地重新发明了轮子。

场景:我正在使用搜寻器提取一些HTML信息。现在,大多数提取规则都是硬编码的(不是标签或类似的东西,而是循环,嵌套元素等)。对于...

java web-crawler information-retrieval information-extraction
1个回答
0
投票

我正在做一些类似的事情-不完全是您要搜索的内容,但是也许您可以得到一些想法。

© www.soinside.com 2019 - 2024. All rights reserved.