2011-04-09 61 views
1

什么是使用Java设施检测HTML页面内数据类型的最佳方法DOM API,regexp等? 我想检测类似Skype的插件为电话/ Skype的数字,类似的地址,电子邮件,时间等类型如何检测HTML页面内的不同数据类型?

+0

如果你想答非所问,你需要给这个问题的更多细节。这些任意的网页,或者你知道结构的特定网页?他们是否形成良好?网页或任何地方的知名地点的价值?你关心它们是否对用户可见?这是一个网络爬行问题,你是否试图在浏览器插件中执行此操作?一般来说,你想要做什么? – 2011-04-09 03:38:47

+0

Hey Stephen, 这是具有不同结构,表格,列表,设计元素等的通用html页面。 我想验证只对用户元素可见。 这是测试问题,黑匣子。爬行可能是一个最佳选择,但我也可以考虑浏览器插件 – 2011-04-14 18:57:16

回答

2

'类型'是一种不适用于你所指的信息。 DOM API或正则表达式的选择取决于页面内的信息结构。

如果您知道结构(例如,用于显示信息的表格,您已经知道哪个单元格可以找到电话号码以及哪个单元格可以找到电子邮件地址),那么使用DOM API 。

否则,您应该对纯HTML文本使用正则表达式而不解析它。

+0

如果DOM API没有找到匹配的关闭标签,DOM API是否会变得疯狂?你不能指望所有的页面格式良好。 – user183037 2011-04-09 03:02:41

+1

@user取决于你正在使用的API实现。有很多这样的成熟实现能够很好​​地迎合不合格页面。我有很好的眼镜蛇解析器的经验:http://lobobrowser.org/cobra.jsp – craftsman 2011-04-09 09:47:16

0

我会使用正则表达式以下顺序:

  1. 只提取正文内容
  2. 删除所有标签只留下纯文本的文本
  3. 比赛有关的图案

当然,这假定标记不提供提示,并且您纯粹提取数据,而不是修改页面上下文。

希望这有助于

菲尔Lello

+0

嘿菲尔, 这真的很多工作。此外,问题之一是找到相关类型的原因,其中一些非常相似,如货币,号码和电话号码,这使得正则表达式的使用非常复杂 – 2011-04-14 19:06:10