Я бы порекомендовал Jsoup для этого. У него очень хороший API с поддержкой jQuery, таких как селекторы CSS, и неполнота итерации элементов . Чтобы взять копию этого ответа в качестве примера, здесь печатается ваш собственный вопрос и имена всех респондентов:
URL url = new URL("https://stackoverflow.com/questions/3121136");
Document document = Jsoup.parse(url, 3000);
String question = document.select("#question .post-text").text();
System.out.println("Question: " + question);
Elements answerers = document.select("#answers .user-details a");
for (Element answerer : answerers) {
System.out.println("Answerer: " + answerer.text());
}
Альтернативой может быть XPath , но JSoup более полезен для веб-разработчиков, которые уже хорошо разбираются в селекторах CSS.
Лучшим будет тот, который выполняет свою работу правильно.
Существует версия с открытым исходным кодом под названием tagsoup , а также jTidy