Действие парсера «HTML: Получить все ссылки пейджера»

Действие "HTML: Получить все ссылки пейджера" (далее Действие) предназначено для получения всего массива ссылок из "пейджера" - навигационного блока для перехода между страницами результатов вида < предыдущая 1 2 3 ... 155 следующая > .

Действие имеет три параметра.

  1. HTML фильтры
  2. Префикс пейджера
  3. Дополнительные параметры
Действие Параметр Значение
HTML: Получить все ссылки пейджера HTML фильтры auto
Префикс пейджера  
Дополнительные параметры  
 
Исходное значение   Результат (массив)
http://excelvba.ru/programmes/Parser
 
http://excelvba.ru/programmes/Parser
http://excelvba.ru/programmes/Parser?page=1
http://excelvba.ru/programmes/Parser?page=2
http://excelvba.ru/programmes/Parser?page=3
.
.
.
http://excelvba.ru/programmes/Parser?page=24
http://excelvba.ru/programmes/Parser?page=25
http://excelvba.ru/programmes/Parser?page=26

Особенностью Действия является то, что на входе оно может принимать как гиперссылку (в примере выше), так и полный текст страницы (либо кусок html-кода). Т.е. мы получим тот же результат, если предварительно добавим действие Загрузить ИСХОДНЫЙ КОД веб-страницы.

Если действию не удается найти ссылки, то возвращается значение зарезервированной переменной %LastUsedURL% (т.е. в случае, если на входе была ссылка на страницу, где не удалось найти страницы пейджера, то эта же ссылка и возвращается).

Если Действие правильно находит все ссылки, то указывать параметры нет необходимости. Если ссылки не находятся или формируются неправильно, то в этом случае можно попробовать подобрать нужные параметры.

Параметр HTML фильтры

По умолчанию стоит значение "auto". В данном параметре можно указать парсеру, внутри какого тега надо искать ссылки. Зачастую это помогает получить нужный результат. Синтаксис допускает следующие способы указания нужного тега:

  • с указанием тега, атрибута и его значения, например: ul class=pager
  • с указанием только атрибута и его значения, например: id=pager

В случае, если вы задали HTML-фильтр правильно, во всплывающем информационном блоке появится сообщение с фразой:

Применён HTML фильтр ul class=pager
(длина HTML после фильтрации: 1256)

Если фильтр задан неправильно, то появится сообщение:

Применён HTML фильтр id=pager
(длина HTML после фильтрации: 0)
Ошибка поиска пейджера - после фильтрации получено пустое значение.

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

Параметр Префикс пейджера

Данный параметр указывает парсеру, как выглядит ссылка пейджера. По умолчанию стоит пустое значение, это значит, что парсер пытается подобрать префикс из наиболее распространенных вариантов. Автоматически распознаются следующие варианты:

&page=#
&offset=#
&start=#
&PAGEN_1=#, &PAGEN_2=#, &PAGEN_3=#, &PAGEN_4=#, &PAGEN_5=#, &PAGEN_6=#, &PAGEN_7=#
/page/#
/p#/
/p/#/

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

Если пейджер выглядит, как одна из стандартных ссылок, но Действие всё равно его не находит или формирует неправильные ссылки, попробуйте указать принудительно нужный вариант.

Параметр Дополнительные параметры

Данный параметр нужен для правильного формирования уже найденного массива ссылок.

Если после попыток подбора первых двух параметров Действия массив ссылок всё равно не формируется, редактирование третьего параметра не поможет.

Возможно указание одного или нескольких параметров. Если нужно указать несколько параметров, то они объединяются амперсандом (&).

min=2 - указывает, с какого числа нужно формировать массив ссылок. Применяется если, например, основная ссылка и page=1 - это одна и та же страница. Или если ссылки находятся, начиная со страницы с №1, а нужна еще страница с №0.

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

 

Действие Параметр Значение
HTML: Получить все ссылки пейджера HTML фильтры auto
Префикс пейджера  
Дополнительные параметры min=5&max=50
 
Исходное значение   Результат (массив)
http://excelvba.ru/programmes/Parser
 
http://excelvba.ru/programmes/Parser
http://excelvba.ru/programmes/Parser?page=5
http://excelvba.ru/programmes/Parser?page=6
http://excelvba.ru/programmes/Parser?page=7
.
.
.
http://excelvba.ru/programmes/Parser?page=48
http://excelvba.ru/programmes/Parser?page=49
http://excelvba.ru/programmes/Parser?page=50

Массив начинается со страницы с №5 и заканчивается на странице №50, хотя такой страницы на момент написания статьи не существует. Также здесь хорошо видно, что массив ссылок по умолчанию начинается с основной ссылки на страницу (%LastUsedURL%).

DeleteBaseURL=1 - удаляет ссылку на основную страницу

step=1 - указывает шаг в массиве ссылок, в случае если шаг определяется Действием неправильно.

shift=+1 - указывает сколько надо добавить (или отнять) от каждого номера страницы в массиве

Действие Параметр Значение
HTML: Получить все ссылки пейджера HTML фильтры auto
Префикс пейджера  
Дополнительные параметры min=10&step=25&max=200&DeleteBaseURL=1&shift=-1
 
Исходное значение   Результат (массив)
http://excelvba.ru/programmes/Parser
 
http://excelvba.ru/programmes/Parser?page=9
http://excelvba.ru/programmes/Parser?page=34
http://excelvba.ru/programmes/Parser?page=59
http://excelvba.ru/programmes/Parser?page=84
http://excelvba.ru/programmes/Parser?page=109
http://excelvba.ru/programmes/Parser?page=134
http://excelvba.ru/programmes/Parser?page=159
http://excelvba.ru/programmes/Parser?page=184

Данный пример помогает понять, как работает третий параметр Действия. Сначала мы создали массив ссылок от 10-ой до 200-ой страницы с шагом в 25 страниц, затем удалили базовую ссылку (http://excelvba.ru/programmes/Parser) и после этого отняли от каждого номера страницы единицу.

Примечания и рекомендации по использованию

  1. Найти номер последней страницы (или задать его с запасом)
  2. Сформировать массив чисел
  3. Добавить текст ДО, например такой: http://excelvba.ru/programmes/Parser?page=

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

  • Если массив формируется, но в ссылке не хватает куска текста. Например, ссылка выглядит так:

na-sklade?pages=1&p=1
na-sklade?pages=1&p=2

а формируется массив

na-sklade?p=1
na-sklade?p=2

То в этом случае можно применить действие Заменить часть текста "?p=" на "?pages=1&p="

  • Если же пейджер еще более сложный и представляет из себя что-то наподобие: /item21-item11/, /item31-item21/, то в этом случае нужно использовать наборы действий.

Комментарии

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

подскажите как получить ссылки пейджера на этом сайте https://tgabsolut-shop.ru/catalog/6850/?PAGEN_3=2

Как правильно обрабатывать пейджер вида:
javascript:__doPostBack('p$lt$zoneContainer$pageplaceholder$p$lt$zoneForm$UniPager$pagerElem','1')
Стандартными средствами - не получилось
А нормальной инструкции как через окно IE это сделать не нашел
Оригинал сайта тут https://catalogue.hyve.ru/ru-RU/exhibitorlist.aspx?project_id=480
Заранее спасибо за подсказку

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

Добрый день!
помогите разобраться с таким пейджером a href="https://www.elektro4000.de/Anlagen-Systemtechnik/Antriebstechnik/Elektromotoren:::6820_6885_8136:2.html" class="pageResults" title="Seite 2">2

ВНИМАНИЕ: По этому действий есть дополнительная инструкция, для каталога сайта с неизвестным количеством страниц результатов:
https://excelvba.ru/programmes/Parser/manuals/setting/procedure/pager/en...

Здравствуйте
Это делается примерно так:

 

Действие Параметр Значение
Сохранить текущее значение в переменную Название переменной Ссылка без пейджера
Область видимости parser
Загрузить ИСХОДНЫЙ КОД веб-страницы URL
Кодировка веб-страницы
Загружать все страницы результатов
Кеширование
Взять блоки текста МЕЖДУ ... Начало блока текста switchPage(
Конец блока текста )
Номер результата все
Добавлять начало и конец блока в результат нет
Минимальное / максимальное / среднее Функция для массива чисел Max
СОЗДАТЬ массив чисел (для цикла) Начальное значение 1
Конечное значение
Шаг 1
Делитель для конечного значения
Добавить текст ДО или ПОСЛЕ Префикс %Ссылка без пейджера%&pagenum=
Суффикс
Исходное значение Результат (массив)
https://www.armeks.ru/store/?group_id=7
https://www.armeks.ru/store/?group_id=7&pagenum=1
https://www.armeks.ru/store/?group_id=7&pagenum=2
https://www.armeks.ru/store/?group_id=7&pagenum=3
https://www.armeks.ru/store/?group_id=7&pagenum=4
...
https://www.armeks.ru/store/?group_id=7&pagenum=25
https://www.armeks.ru/store/?group_id=7&pagenum=26

 

подскажите как получить ссылки пейджера на этом сайте https://www.armeks.ru/store/?group_id=7&pagenum=1

Игорь, спасибо большое!

Ирина, да, через проверку на выполнение условия, на следующем подуровне
(когда на следующем подуровне вы получаете товары со страницы, а результат пустой, - проверяете на условие пусто,
и в случае выполнения условия выбираете опцию «Остановить» с параметром -2, т.е. без выполнения подуровней и без вывода на лист)

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

А как быть если вместо цифр пейджера есть только стрелки вперед или назад или выдает первые 5 страниц