2010-01-06 164 views
1

在Java中从HTML页面中提取元素的首选方法是什么?从html页面中提取元素的最佳方式?

我的HTML是有许多如下行:

<tr class="item-odd"> 
     <td class="data"><a href="http://.....">TITLE</a></td> 
     <td><div class="cost">$1.99</div></td> 
</tr> 

类交替item-odditem-even.

我需要提取:

  1. 网址
  2. 标题
  3. 价格

正则表达式的路要走吗?

+1

不,不是正则表达式。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-01-06 22:54:09

+1

根据你的用户活动页面,你问了不少于24个问题在过去的24小时内。你有没有想过或许只是偶尔回答一个问题而已? – 2010-01-06 22:59:27

+0

是的,我已经考虑过了。 – mrblah 2010-01-06 23:08:57

回答

6

我会使用这个工作的图书馆,如HTML Parser。看看samples和/或javadoc。另请参阅SO上的previous questions

HTML Parser很容易使用,应该做的工作。对于替代品,请看这previous answer

+0

与HtmlUnit不同吗?看起来很相似。 – mrblah 2010-01-06 23:00:39

+0

HtmlUnit是一个测试工具。 HTML解析器是...解析器。所以是的,他们是不同的。 – 2010-01-06 23:02:20

+0

是真的,但HtmlUnit确实有解析器类型的方法,但我明白你的观点! – mrblah 2010-01-06 23:09:43

3

JTidy在解析HTML并使其可用于DOM操作方面做得非常出色。正则表达式通常是而不是要走的路,因为HTML不规则,并且有许多边缘案例可以让您知道。

+0

用Java的人,你有很多选择,它的疯狂! – mrblah 2010-01-06 22:59:56

相关问题