Страницы

Поиск по вопросам

суббота, 21 декабря 2019 г.

Парсинг всего сайта с помощью Jsoup

#java #jsoup #парсер


Осваиваю парсинг сайтов, в связи с чем возник вопрос, на который никак не могу найти
ответ. 

Задача стоит следующая: прошерстить все страницы  сайта, и посчитать, сколько раз
там встречается заданное слово. На данный момент я разобрался, как сделать вышесказанное
только на одной странице. Как можно организовать автоматический переход со страницы
на страницу, чтобы пропарсить полностью весь сайт?
    


Ответы

Ответ 1



Задачу можно разбить на несколько этапов: Получаем содержимое страницы и выполняем нужный анализ. Document doc = Jsoup.connect("http://www.site.com/").get(); processDoc(doc); Находим на текущей странице все ссылки с этим же доменом и добавляем их в очередь, предварительно отфильтровав те ссылки, которые уже были посещены. Elements links = doc.select("a[href]"); for (Element link : links) { String absLink = link.attr("abs:href"); if (absLink.contains("site.com") && notYetVisited(absLink)) addToQueue(absLink); } Пока очередь еще не пуста, извлекаем очередную ссылку и переходим шагу 1. Если сайт большой, то необходимо предусмотреть хранение очереди ссылок и списка посещенных ссылок в базе данных. Вот подробный пример с решением похожей задачи.

Комментариев нет:

Отправить комментарий