2010-01-06 2 views
1

Каким образом можно извлечь элементы с HTML-страницы на Java?лучший способ извлечь элементы со страницы 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-odd и item-even.

Мне нужно извлечь:

  1. Url
  2. Название
  3. цена

Является ли регулярным выражением путь?

+1

Нет, не регулярное выражение. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+1

Согласно вашей странице активности пользователя, вы задали не менее 24 вопросов в течение последних 24 часов. Вы когда-нибудь думали, что, возможно, когда-нибудь ответите на вопрос, просто для пинков? –

+0

Да, я подумал об этом. – mrblah

ответ

6

Я бы использовал библиотеку, такую ​​как HTML Parser для этой работы. Посмотрите на samples и/или на javadoc. Также посмотрите на previous questions здесь, на SO.

HTML Parser довольно прост в использовании и должен выполнять эту работу. Для альтернатив взгляните на это previous answer.

+0

Это другое, что HtmlUnit? выглядит похожим. – mrblah

+0

HtmlUnit - это инструмент для тестирования. HTML Parser - это ... парсер. Так что да, они разные. –

+0

true, но у HtmlUnit есть методы типа парсера, но я получаю вашу мысль! – mrblah

3

JTidy отлично справляется с анализом HTML и делает его доступным для манипуляции как DOM. Регулярные выражения, как правило, не путь, так как HTML не является регулярным и имеет многочисленные краевые случаи, чтобы вас поднять.

+0

человек с Java, у вас есть много вариантов, его сумасшедший! – mrblah