Парсинг с помощью jsoup
Делаю своё первое тестовое задание на позицию junior java developer. Стоит задача сделать так называемый "веб-сканер". Решил использовать jsoup, до этого с ним не сталкивался. Дана живая начальная страница url, на которой необходимо "подсчитать", сколько раз на этой странице встречаются заданные ключевые слова,и вывести их количетсво. Далее - обойти следующие URL с начальной страницы, повторить подсчёт и на них, и.т.д. Глубина обхода - n страниц. URL могут вести на разные сайты.
Пример вывода:
asd.com\page - 8 слов stack, 6 слов overflow.
asd.com\nextPage - 5 слов stack, 4 слов overflow.
qwerty.com\anotherPage - 4 слов stack, 4 слов overflow.
newsite.org\startpage - 4 слов stack, 4 слов overflow.
...
Не могу понять, как мне извлечь из URL весь текст странички, чтобы я мог в нём искать ключевые слова.Я понимаю что надо
Document document = Jsoup.connect(URL).get();
Но как теперь из этого document получить весь текст странички, чтобы я мог в нём искать ключевые слова?
И как наиболее просто искать эти слова, неужели через метод contains? Или лучше для этого вообще не jsoup использовать, а что-то другое?
Извините если вопрос покажется детским, занимаюсь java недавно, и это мой первый вопрос.
Ответы (1 шт):
public static void main(String[] args) throws IOException {
String word="document";
Document document = Jsoup.connect("https://ru.stackoverflow.com/questions/1149627/%d0%9f%d0%b0%d1%80%d1%81%d0%b8%d0%bd%d0%b3-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-jsoup/1149769#1149769").maxBodySize(0).timeout(0).get();
String text = document.text();
long count = Arrays
.stream(text.split("\\s+"))
.filter(word::equals)
.count();
System.out.println(count);
}
Данный код выведет сколько раз на этой странице встречается одинокостоящее слово "document".