#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. Если сайт большой, то необходимо предусмотреть хранение очереди ссылок и списка посещенных ссылок в базе данных. Вот подробный пример с решением похожей задачи.
Комментариев нет:
Отправить комментарий