Когда я использовал jsoup для анализа некоторых html-файлов, таких как "google.com", я столкнулся с проблемой при получении текста элемента.
Например, в этом элементе div
с использованием text
функция, слова «Программы» и «Бизнес» связаны друг с другом, что я считаю неправильным:
<div id="fll" style="margin:19px auto;text-align:center">
<a href="/intl/en/ads/">Advertising Programs</a>
<a href="/services/">Business Solutions</a>
<a href="https://plus.google.com/" rel="publisher">+Google</a>
<a href="/intl/en/about.html">About Google</a>
</div>
Вы можете проверить мою заявку с помощью этого кода:
URL url = new URL("http://www.google.com");
Document document = Jsoup.parse(url, 10000);
Element element = document.select("div[id=fll]").first();
System.out.println(element.text());
Вывод будет:
Advertising ProgramsBusiness Solutions+GoogleAbout Google
Я хочу знать, что можно с этим поделать?
Кстати, я проследил код и обнаружил, что проблема будет исправленадобавив эту строку:
textNode.text(textNode.text() + " ");
между строками 755 и 756 класса Element
пакета nodes
исходного кода jsoup
.
Также эта проблема существует вElements
класс пакета select
и, возможно, другие text
функции!