Jsoup и парсинг (Страница парситься не полностью, как обойти)

 
 
 
Сообщения:24
Есть сайт акций по маркетам: https://gotoshop.net.ua/
Хочу спарсить страницу с акциями, но парсится только верхняя часть с разделами - эмблемами магазинов, сама зона с сгенеренными айтемами акций, картинками которая - не парсится.

Паршу традиционно, Jsoup библиотекой, с эмуляцией юзерагента (без нее 403 ошибка):

doc = Jsoup.connect(parseLink).userAgent("Mozilla").get(); // get - to post
System.out.println("Документ " + doc);


Как обойти проблему? Я понимаю, что разработчики ресурса специально сделали так, чтобы усложнить\исключить парсинг, + сами акции-айтемы подгружаются при прокрутке страницы (видна только первая полоса, но и ее не парсит). Возможно стоит симулировать прокрутку колесика мышки, чтобы контент попал в запрос, но выходит так, что сначала jsoup парсит "заглушку", а потом уже скроллить бесполезно.

Есть ли какие-то механизмы по типу - зайти на страницу, отправить запросы действия (скроллинг), потом уже полученную страницу спарсить? Подскажите направление действий.

Заранее спасибо :)

Помогли тебе, помоги другому. Ищу наставника Java Android.
 
 
Сообщения:1339
Для таких целей можно использовать Selenium с каким-нибудь phantomjs - тогда можно будет выдернуть html уже после выполнения js.
Симулировать "прокрутку колесика" и клики с помощью Selenium тоже можно.

datatalks.ru - анализ данных, статистика, машинное обучение
Изменен:08 дек 2016 19:12
 
 
Сообщения:24
Ответ: Надо было отследить запрос в отладчике браузера (Фаерфокс), при прокрутке, соответсnвенно оно генерирует Get запрос к ссылке: https://gotoshop.net.ua/kiev/?cids=630&page=1&is_ajax=1, по которой отдает нужную информацию. Вспомнил об этом механизме по опыту работы на другом проекте :)

Помогли тебе, помоги другому. Ищу наставника Java Android.
 
 
Сообщения:24
stolzen:
Для таких целей можно использовать Selenium с каким-нибудь phantomjs - тогда можно будет выдернуть html уже после выполнения js.
Симулировать "прокрутку колесика" и клики с помощью Selenium тоже можно.


Спасибо, узнаю и об этом варианте.

Помогли тебе, помоги другому. Ищу наставника Java Android.
 
 
Сообщения:1339
Ну да, если есть возможность воспользоваться веб-сервисом, то селениум - слишком тяжелая артиллерия.

datatalks.ru - анализ данных, статистика, машинное обучение
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет