Я использую HTMLCleaner для анализа данных ....
Вот как это работает:
HtmlCleaner cleaner = new HtmlCleaner();
final String siteUrl = "http://www.apple.com/";
TagNode node = cleaner.clean(new URL(siteUrl));
TagNode[] aTagNode = node.getAllElements(true);
for(int i = 0; i< aTagNode.length; i++){
if(!aTagNode[i].hasAttribute("a")){
System.out.println(aTagNode[i].getText());
}
}
Но я обнаружил, что есть некоторые проблемы ....
Например, получить текст:
<a href="/choose-your-country/">
<img src="http://images.apple.com/home/elements/worldwide_us.png" alt="United States of America" height="22" width="22" />
<span class="more">Choose your country or region</span>
</a>
"Выберите свою страну или регион" находится внутри тега span, но его родительский узел является тегом "a" ..... Я тоже не хочу этого, я просто хочу что-то вроде этого .... :
<p class="left">Shop the <a href="/store/">Apple Online Store</a> (1-800-MY-APPLE), visit an <a href="/retail/">Apple Retail Store</a>, or find a <a href="/buy/">reseller</a>.</p>
Я хочу получить результат Stop the
, (1-800-MY-APPLE),visit an
, or find a
и .
Поскольку Apple Online Store
, Apple Retail Store
и reseller
- это текст внутри тега a, поэтому я хочу игнорировать эти слова. Спасибо.