Переключение страниц на скриптах

На некоторых сайтах пейджер (навигация по страницам результатов) реализован при помощи javascript. В этом случае элементы пейджера (1 2 3 ... 15) не имеют ссылок, либо все ссылки с пейджера ведут на адрес типа //главная-страница-сайта/#

В таком случае парсер тоже может перебрать все страницы результатов, но подход используется другой.

Прежде всего, необходимо ознакомиться с видеоинструкцией по POST запросам, в частности, про просмотр выполняемых браузером запросов к сайту в консоли браузера (видео можно смотреть с отметки времени 9:28).

Консоль в браузере отображается нажатием комбинации клавиш Ctrl + Shift + i (в Google Chrome и аналогичных) ПЕРЕД началом загрузки страницы сайта.

 

Рассмотрим порядок действий на примере этого сайта, где страницы результатов перелистываются скриптом.

Первое, что мы сделаем, — это убедимся, что пейджер действительно на скриптах, т.е. с пейджера нет ссылок на страницы результатов:

 

Теперь в консоли переключаемся на вкладку Network, нажимаем кнопку Clear для очистки списка ранее выполненных запросов, и щелкаем по любой кнопке пейджера на сайте.
В консоли отобразятся все запросы, которые при этом выполнит сайт.

Ищем запрос (типа GET или POST), который подгружает данные очередной страницы:

 

Теперь наша задача — настроить в парсере аналогичные запросы, предварительно получив количество страниц результатов действием Поиск тегов или другими способами:

 

Действие Параметр Значение Результат
... добавляем заголовки запроса и Cookies (при необходимости) ...
Загрузить ИСХОДНЫЙ КОД веб-страницы URL https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber=1 Текст (длиной 20194 символа)

Быстрый поиск значения в JSON Список ключей для поиска, через / Count Число (длиной 6 символов)
СОЗДАТЬ массив чисел (для цикла) Начальное значение 1 Массив из 7625 значений:

Конечное значение
Шаг 1
Делитель для конечного значения 20
Добавить текст ДО или ПОСЛЕ Префикс https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber= Массив из 7625 значений:
https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber=1
https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber=2
https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber=3
https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber=4
https://www.mos.ru/altmosmvc/api/v1/taxi/getInfo/?Region=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&pagenumber=5
... (ещё 7620 значений)
Суффикс

 

Остаётся на следующем подуровне исходных данных выполнить загрузку этих страниц, и извлечь с них данные.

 

Комментарии

Добрый день!
Спасибо за подробную инструкцию.
Столкнулся с ещё одной проблемой.
При использовании ссылки из GET запроса в Chrome загружается код JSON, т.е. вроде всё ОК. Но когда пытаюсь загрузить ссылку в парсере страница не загружается. В коде присутствует текст "Страница не найдена". Попробовал скопировать ссылку в адресную строку IE и загрузить страницу, но она там тоже не загружается а загружается какой-то файл GetInfo.json.
Хотел использовать рекомендацию с заголовками и Cookies, просмотрел видеоинструкцию. Но при настройке парсера не смог найти на этом сайте ни Cookies, ни заголовков. Их там просто нет.
Подскажите, пожалуйста, направление в котором ещё покопать.