Множество ресурсов в сети имеют многостраничную структуру. Как правило, это различные интернет-магазины, каталоги, новостные ресурсы... В A-Parser существует несколько способов, с помощью которых можно реализовать проход по пагинации. В связи с их разнообразием, становится актуальным вопрос выбора нужного алгоритма, который позволит максимально эффективно переходить по страницам в процессе парсинга. Особенность заключается в том, что на некоторых сайтах решить задачу с пагинацией можно любым из способов, тогда как на другом - будет работать только один из них. Постараемся разобраться с каждым из способов подробно.
В нашей статье для обозначения процесса прохода по страницам будет использоваться термин "пагинация".
В A-Parser существуют такие способы для прохода пагинации по страницам сайта:
Рассмотрим каждый вариант на конкретном примере.
- функция Use pages
- функция Check next page
- использование макросов подстановок
- написание JS парсера
- инструмент $tools.query.add
Use pages. Данная функция позволяет проходить по пагинации с указанием наперед известного числа страниц.
Для примера возьмем одну из категорий на сайте каталога товаров https://www.proball.ru/catalog/myachi/. Вверху и внизу мы видим панель пагинации. При клике по пиктограмах с номерами страниц можно увидеть в строке браузера, как осуществляется передача параметра с номером страницы в конце запроса:
Use pages это своего рода счетчик, который фактически в переменную $pagenum подставляет по порядку номера, увеличивая их на то значение, которое мы укажем. То что нам нужно. Сделаем пресет, который, например, будет собирать все ссылки на товары, которые размещаются на страницах вышеуказанной категории товаров.Код:https://www.proball.ru/catalog/myachi/?PAGEN_1=1
Как видно на скриншоте, в формате запроса парсера в нужном месте используется переменная $pagenum. Функция Use pages переберет и подставит в запрос все значения, фактически мы будем получать ссылки для запроса
где вместо переменной $pagenum будет подставлен номер страницы, начиная от 1 и до 4 с шагом 1.Код:https://www.proball.ru/catalog/myachi/?PAGEN_1=$pagenum
Таким образом, получается проход по страницах нужного диапазона. В этом заключается ограничение данного метода - нужно заранее знать количество страниц, которые есть в пагинации. Очевидно, что при одновременном парсинге нескольких категорий, количество страниц везде будет разное, и как выход, мы можем просто указать большее количество предполагаемых страниц. Но это не совсем правильно, поэтому есть более оптимальное решение, о котором речь пойдет дальше.
Детальнее о Use pages: https://a-parser.com/wiki/net-http/#ВозможностиeJx1VNtu2kAQ/ZVqhJSgUAhV+2I1jSgqvSgCmtAnjKKtPTZu1rubvXAR8r931jY2
pOmTvWfPXM7M7BzAMvNk5hoNWgPB8gCq/IcAnME5SxF6oJg2qP31EqZog+DbYjEn
PMaEOW6hdwC7V0g2coNaZ7E3ymI6p1LGY1meN4w7oizfXV+vitYicsbK/B5N6Qh0
9RMsKWiKxgdhlsHK36S4I4OP7E3EmTE3IaQU6m1mMX98XCOLUYcQhuZqrTGh28v+
1W03hE9Q2y6qgGkTpQaY1mxPYPmdstxjPBNPpiF65SUEp5lLZTMpzFFqXS7TSoWh
9xrHmecxDsGhEvVgUdW3/hxJJ3y930NR/L+Szw71PpE6Z/YkQqeEb+ejr1+mj8Ob
jvcnXA7FatUkP6mMiKyG/VJYv/JzebG2VplgMNhut32l5W/GeV+7jieFobjothV4
YBtcSHKSZBxbeEKnumQdahT626P3bj8ym7MKVJn4arbZ/RLZcylFSOJ6ORmaiZY5
QRZ3tgb3RxXLWrMfCVfa/qxsIEgYN9gDQ6lOGCUSv7yhUdHMSj2rO0cNkWLE+R1u
kLe00v9nl3GaKDNKyOh7bfg6ZfaPj6KRdxqKOrrVlENLiuWdTI/anxBVU42pR3Kp
sXFQR6790otVKPxgtM0YqRY6S/Cs4OdgJEWSpbN62I5MJxa0FmZiLHPF0WcsHOc9
P+P3beNHpi6wP7QJvjQelyEorWZdgJWSmx8PVapKZzRYH5rmE/r6XA4iWgVcpoN8
z6J1NiBbQjCVNA1+c5XjQi9Hl/J6gDvFRIxUEasdFqti1ayyZuEdThZacKAHCH/M
vOJ4VZ5BGJXHUBcgGBZ/AXULzRU=
Сheck next page. Это еще одна функция, которая позволяет организовать проход по пагинации. Особенность ее использования заключается в том, что для перехода на следующую страницу, нужно использовать регулярное выражение, которое будет возвращать ссылку на следующую страницу. Это более удобный и наиболее часто применяемый способ. Но применить его для https://www.proball.ru/catalog/myachi/ не получится, т.к. в коде нету ссылок на следующие страницы. Ссылки там генерируются скриптом. Поэтому возьмем в качестве примера сайт http://www.imdb.com/search/name?gender=female. Здесь есть пагинация как в начале так и в конце списка. Посмотрев и проанализировав исходный код, можно увидеть наличие ссылки, которая позволяет переходить на следующую страницу:
Проанализировав исходный код, составим регулярное выражение, которое будет получать ссылку с этого элемента. Составим пресет:
В примере указано "4". Указав лимит, мы определяем, сколько страниц парсер должен пройти. В нашем случае будет пройдено 5 страниц, так как отсчет начинается с 0. Если указать лимит "0", то парсер будет работать до того времени, пока не пройдет все страницы в независимости от их количества. Это очень удобно использовать, когда нужно спарсить все результаты со всех страниц.
- в поле Next page RegEx запишем регулярное выражение
- в поле Limit укажем количество страниц, которое нужно пройти
Детальнее о Check next page: https://a-parser.com/wiki/net-http/#ВозможностиeJx1VGFT2kAQ/SuZG2aUggGq4DSijnXG2qpAlY4fCM6cZANXL7n07iJYhv/e3RAS
sO0XuH3ZvX1vd2+XzHLzYgYaDFjDvNGSJdmZeWwyg8lLDxZ2wKfA6izh2oAmpxHr
gfW86+FwgHgAIU+lZfUls28JYKR6Ba1FQEEiQHuqVHCpMvuVyxRdRh+bzfHq/xEp
ZjrAtLEtY9id+i2k5I2223T2H0UcqLlxekOn47ZOHLQ7RyfOonNUdS6SRMIjPN8I
22gfHruHHWf/5np4d1t3pHgB5wsKU1XncqZVBI32J7fpHjaPW26r1XYeeMi1yMPY
FsVJaqyK7sFkWpleH7wR1mUKhurALWdj+jKFBQZ0TcJjZyK5Mac+k8JY1CQsRAdI
HRZuzWdnvm8+7Lu18yodur7foBhCa10+ejob19Yeo6fueMuJn7E8zXDNbVoQygGu
NX9DMPvv8YgwSm0KR+oji9PoGZGYHHbakVihYrPpxvtJ2DSky52ZhhDVrTUwIv5O
MFXnIMZYh34y02fELAgEJeGSecvdDLciEjSAR2y1Go8LwldKR5zwStJyMzFumEH7
exUS4lRIh+/He9VS5QN/haHCoFBIKOErtPKyVLBvQF83t1Vdu7A7DNeZqWIlmx+x
+JUVIVboi0ctwFzhQCFkIbuAwLcN6xGrZDZNSJrFfl/HMC/k0kCdGaR6xZFI8P4L
itXcKt3P24IFU/GFlLfwCrJ0y+7/nAoZ4DO9CDHoax74b5f+X3esCnnbqfBtzjVy
KJ0CdaumG+0vAElRjR4hkdJQXJBnzu/FTZNATENVNgOfawHtENwp+C44UXEopv18
bWw803iI66wfX6oINwAxjlMp67RO7svGX5i8wGSUBN8HX2YpkFax4JhVSppvD2uq
iRY4WO2i+YjOrE28RmM+n7siCp7diYoaBriezBo0m+e40FDCaQgRz6ZxgqM3VTgU
tHizqaHhMZQKFrgJAsCyWJ3CarwaFxu42NbLrT3sLVfYmJ9msPYhaeSBGNbIYCuY
11r9ASIaBUM=
Как было сказано выше, есть возможность динамически ограничивать количество страниц в Use pages. Для этого нужно совместно использовать Use pages и Сheck next page. Дополним пример, который был рассмотрен при описании Use pages и добавим в него функцию Сheck next page:
Эти две функции в паре работают следующим образом: Use pages обеспечивает проход по страницам, а Check next page проверяет, существует ли следующая. Как только Check next page не найдет следующей страницы, парсинг этой категории будет остановлен, не дожидаясь прохода по всему количеству, которое указано в Use pages. Совмещая эти функции, мы добавляем эффективности в работе парсера, экономя время и ресурсы.
eJx1VNtuGjEQ/ZXKQkqiEC6V+rJqGtGo9KIIaEKfWBS5u7OLi9d2bC8EIf69M3uF
XJ52fTyXM2fGs2eeu7WbWXDgHQsWe2aKfxaw3MGMp8C6zHDrwNL1gk3AB8GP+XyG
eAwJz6Vn3T3zOwPoozdgrYjJScR4TrWOb3Vx3nCZo8ni42CwPLQeUe68zu7BFYGY
LX+CBSZNwVES7jlb0k0Kz+jwmX+IJHfuOmQpproSHrLHxxXwGGzIwtBdriwkeHve
u7y5CNkXVvnOy4Rpk6UCuLV8h2DxnfCMMCnU2jWGVHkBsWPm2nihlatLreRybals
SFHjWJAdlyzYl0U9eDDVLZ0jnSvSezgYsMPhfS2fcrC7RNuM+6McnQK+mY2+f5s8
Dq87FFHlGXufaLSCaD2BZ191t45EQl8pxK8oxjVpGV+G7FUNJ/53IhNEnqgvl41g
45Im0jPDXiFmr2R+frby3rig399utz1j9V8uZc/mHTIKQ3V20ar+wDcw1xgkERJa
eIynqk0d5Ax0W0e/6EVuc8K4ZEIdbNn9UeKpKFlptCUBBbix1RlCHgurwF1dxaJS
mcYwL3x/lz4sSLh00GUOqY45Eolf3uB4Wu61nVZNQAG1Gkl5BxuQrVkR/2suJE6x
GyXo9LNyfNtk+irGoSnvOBXO0NYih9Yo1nc6rWtfA5hGjQkhmbbQBKgyV3FxSxhQ
NEJtM0amhU4Ingh+CkZaJSKdVuNdW+Zqjqtoqm51ZiQQY5VL2aV3dd82fuQqgenQ
EnzpfFukoKGuVxTzWkv366GkaqzAwfrUNB/Rt+eyH+GrkDrtZzserUQffRGBVOM0
0LYsxgWfmC3K6zJ4NlzFgIoMD8vDstmdzYbdH23QYI/vnf1zs9KGSiILxFAbhy2g
KP8Byg3yDQ==
Макросы подстановок. Следующим решением, которое позволяет организовать проход по пагинации, можно считать макросы подстановок. Макросы подстановок позволяют реализовать последовательную подстановку значений из указанного диапазона. Сделаем пресет для уже известного нам сайта, в котором будет подстановка значений с помощью макроса:
Данный пресет будет работать следующим образом. Указав в формате запроса шаблон
мы добавляем подстановку значений от 1 до 10 (диапазон можно указать любой) в сам запрос. Таким образом мы получаем запросы видаКод:$query?PAGEN_1={num:1:10}
которые обеспечивают проход по нужному количеству страниц.Код:https://www.proball.ru/catalog/myachi/?PAGEN_1=1 https://www.proball.ru/catalog/myachi/?PAGEN_1=2 ... https://www.proball.ru/catalog/myachi/?PAGEN_1=10
Использование макросов подстановок для прохода по пагинации похоже на функцию Use pages и имеет такие же ограничения, то есть нужно указывать конкретный диапазон значений. Преимуществом данного метода можно считать то, что через макросы подстановок можно подставлять разные значения, как числовые, так и текстовые, например, слова или выражения. Таким образом мы можем более гибко вставлять нужные части в запросы или формировать сами запросы из частей, которые будут размещаться в разных файлах, если этого требует задание.
Детальнее о макросах подстановок: http://a-parser.com/wiki/query-format/#Макросы-подстановокeJxtVFtP2zAU/iuTVQkQXUsn7SUaQx2iu4i1HXRPTYW85CT1cGzPx+lFUf47x26a
AOMp8Xcu3+dzccUcx0ecW0BwyKJlxUz4ZxH7yROr8WbH+sxwi2C9fcmm4KLo22Ix
JzyFjJfSsX7F3N4ABekNWCtSIKNI6ZxrnV7rcN5wWZLL8sPFxaruIpISnS7uAEMi
Zg8/0ZJIc0BPwh1nK2/JYUcBn/i7RHLEy5jlRPVeOCgeHtbAU7Axi2M8X1vIyHo6
OL86i9ln1sQuDoR5y9IA3Fq+JzB8p7zwmBTqEVtHf/MAsVW9WrXoRNuC+1L1zGgQ
IgZZgE5P1s4ZjIbD7XY7MFb/4VIObNnzTnGsTs661Pd8AwtNSTIhoYMndGq09KgC
4K3H7GeDBDdecJoKJ7Ti8qDEy+zU/Vbiny84U5p86dcKwInVBUEOdq4B98dbLFkv
nK/m468304fRZaXKIhpFo4val78M6X4d0rAo4xKhz5DUTzhpS19bqC2WO21nxksk
vGJajaW8hQ3Izi1QfimFpO7hOKOg703g2y6z/3LU7Y2fU9Ecbi1p6JxSfavzYzke
AUxboKlHCm2hTdAwN3lpPQwoP85df8amg14IfNGDl2CiVSbyWbMiR89SLWgHZ+pa
F0aCV6xKKangCHfdLIyxKbA/dAJfB18HCpLVriZzWkv8cX+QaqygWfvYzgOhb4/q
MKG1kzofFnuerMWQYgmBXNt9eCbCBPlBQs8BO8NVClQPZ0uoaUvaR6N9W6pnT0dU
1dSRvzg/+Pg7eQ/CqDhIPWDRqH4C36ybyg==
JavaScript парсеры. В A-Parser существует такой мощный инструмент, как JS парсеры. В таких парсерах также можно реализовать проход по пагинации на страницах сайтов. Более того, если если с помощью вышеописанного функционала не удалось сделать проход по пагинации, то на помощь приходит именно это решение. Сделаем один из вариантов решения задачи с пагинацией для уже знакомого нам сайта. Используя простую конструкцию
мы в цикле перебираем номера страниц и вставляем их в ссылку. Количество страниц для перебора, задается через интерфейс парсера и содержится в переменной this.conf.page_count. Также нужно сделать проверку на наличие следующей страницы:Код:for(let i = 1; i<=this.conf.page_count; i++) { this.logger.put('Parse page ' + i); let link = set.query + '?PAGEN_1=' + i; let response = yield this.request('GET', link, {}, { decode: 'utf8', });
В результате получим проход по пагинации, например, укажем 30 страниц:Код:if(/data-next-page=\d+/.test(response.data)) { this.logger.put('No more pages'); break; }
Как видно на скриншоте, парсер прошел 15 страниц, увидел, что нету следующей страницы и остановился.
Это базовый пример, который демонстрирует один из вариантов решения задачи. Используя всю силу и гибкость разработки на JS, можно с легкостью дополнить и расширить этот пример.
Детальнее о JavaScript парсерах: https://a-parser.com/wiki/js-parsers/eJyNVltz4jYU/iuKhhlDIQaazV6cpTvpTrLtTjZJm/QJmIxiC9BGWK4k5zKM/3vP
EbIdjNutHhKf+6dzExtqmXkw15obbg2NphuauW8a0e/mmi1FyqxQKR3QjGnDNepM
6debKGqIE75gubR0sKH2JeNgrx651iLhIBQJ0Blb8rtY5Sko0Ucmc1Q6GtFiPh9Q
CArW5lzpNcPgnWwceiSV8IY98lsFwoWQvGafA3XJ1uitkzDLURounKNuL7TP6IEl
iUCgTG4j4DXqqH+l4m+HJlWgC59acHOu1RpYljsHyHwp0U1px9EUXOTO9o+tDY0W
TBo+oAagnjMAkjQlwnLNrNJXGeIB/oaq9FTKC/7IZa3m/P+aC5lAzk8XYPS7N2xX
udrzUVTXex0KavKkAUOtlKgLtSzv/sB5VmXjEjlrpXnlwEf2fqFrMp5iaetinGY1
awfgTsJ3mbFKF2J55dul1MzTW2jNq/SzWmeSI+I0lxISbvifdeFPjU8wEjXApvFn
FwJgVW1KrVLSfL3ZQs20gMY6rooP3JW1mYmGw6enJ+hEdc+kDHU+jJllUi2H6xcW
r8QQbIHDlwq6AafHtQt2jcEY/DljacIhH1bnvJgX82qOqpHb7E9TtCmgMMhyqni1
f1PcmdLwOwKPJTOGbG3JZpYSOJBiAxBi6J9ur2TisSthQp8UTBKZvJbigbIY8B2R
YBSOw/EoGOzKfUmjph0epjV7aRfhAYBZRKbBNyZSRxApjA0GZDoNpEgf4Cu4wP/z
+XzfQ7HLKtpx3W03QURmtIMhys0QdDDCDE4a9Ga0YeyKFCvoxlbwP49GERkP/htA
ve8gd5C3WlqczNJGCTjsJ3Yvua/BdNfVNKidYXqCWK3v1b16xgxB/cGslIyRNQ7m
7nvkiNGWOnLUkafeOOqNp44ddeypt45666l3jnrnqfeOeu+pD476MCrj+YCj3YrN
T7bfRXntn1x+uzAAg7JOO10JI0tMHsccGnlCxie1BKrXRalwfCI+Tlz6cIWEdY5A
0O/3GoVzijC6S67DLIcOcCPiykQC0ieid7JrgHGwSSAUIA3dOgO94NP16Zezy7vx
xFm1GMGVMhg4DoYvgstkG1pz8GAg7pezW0gTeh6QTTFoa7DENR/0DcutOlzZtWyO
XdFEKxbdgzJw6JPXa/O9l4czrZUmCha3S0bQ9IynrsaoRXqvOXto8BvjuQfW1z10
c38wmZAcNuVCpDxpRb3N6xI2KmAYfmTErbnJjC7h0TiEF219d7fiDF6VGZ3NTH+l
+QKk3bD/Ccb7l+GyBbavVYvkaQU7lyBGiLYNG/JnHnerDMMvDdZrRYrn9eUgyWbV
dVnPrZDwV0v8cfHb7bcL9Dcdw/AE7c9N0GsrRnPz/SDTB0MEe5jC03SIBZ5ghpL+
jA5DfKf+z532euZSEfxl4BrGtHbMD3ri1WeVrKrH/NfJax2b67RUrfdJQfGp9G8U
jcbFP4/PNX0=
$tools.query.add. Ещё один способ прохода по пагинации можно реализовать с помощью инструмента $tools.query.add. Он позволяет добавлять запросы к уже существующим прямо во время работы задания, формируя их "на лету". Сделаем пресет, который продемонстрирует использование данного инструмента. Для примера используем уже известный нам сайт http://www.imdb.com, попробуем спарсить имена знаменитостей женского пола. Проход по пагинации реализуется следующим образом:
Пресет будет иметь следующий вид:
- в исходном коде страницы регулярным выражением парсим ссылку на следующую страницу
- используя $tools.query.add, подставляем ее в запросы
Вся логика работы пресета заключена в шаблонизаторе, где мы указываем как должны подставляться запросы и до какого уровня это нужно делать:
где limit - переменная, в которой содержится кол-во страниц, по которым нужно пройти,Код:[% limit = 4; IF p1.np != 'none'; tools.query.add('http://imdb.com' _ p1.np, limit - 1); END; p1.mas.format('$name\n') %]
а p1.np - переменная со ссылкой на следующую страницу.
Таким образом мы можем организовать проход по пагинации сайта, с указанием количества страниц, используя инструмент $tools.query.add. Благодаря проверке
парсер остановится, как только не сможет найти ссылку на следующую страницу.Код:IF p1.np != 'none';
Данный метод позволяет организовать проход по пагинации на тех сайтах, где это нельзя сделать с использованием всех вышеописанных способов. Например, когда ссылку для следующей страницы нужно генерировать из нескольких параметров, используя при этом какие-то вычисления, и при этом не используя JS парсеры. В этом и состоит главное достоинство такого способа организации прохода по пагинации.
Детальнее о $tools.query.add: https://a-parser.com/wiki/template-tools/#tools-query-добавление-запросовeJylVG1zEjEQ/isxUwew9ABb6nhtdWotVq30DccPHDqR24PYXHJNcoXK8N/dhOOu
Rb/5JZPd7Muzu092QS0zt+ZSgwFraDhc0MzfaUitUsJc5aAfTue0STOmDWhnM6R9
sGF4Nhhcoj6GhOXC0uaC2ocM0FHdg9Y8BnzkMcoTpeIT5eV7JnI0Gb5st0fLymOc
G6vSazA+ENWrS0hjZpmXJzBH8ZCRqYbkKKL1YPttI6JRZLbHghmDKsGNBb2TsQns
SJhb4g4vRnQdY7BKx8schSIRzOVlWrOHPks9pCnLSjNXNZUZ/S/MwbaD+waPF/Xh
98ORqwDvh1HUYk677W7T3TcbYCebYD3KDbQpMxtgnf4x3M2h5DjMHWyOtNVY6Bf1
mwvBWt2gTerfuIzVzJD+gOwHnQOC8v7eAZnv7zXIcZYJ+AY/P3Pb6u6+Cnb3Sf3z
2eDLeZMIfgvkA4xvVYOcTLVKodV9HbSD3farTtDpdMkNS5jmhRtdjkYl8J7SKXM9
HD7HMCm35IjsHUTyY49knUBm5NkRqUkloYbKyHqCBneOoQGL43ptam0Wtlo8jX8G
Y5XWyI+VX7OItkM6DfQ87b93/hLfsG9B4rPWa1uuZ1Ekaw3yfFR184bdw0A5knAB
lbqHUtH8LRw5uNd1qEZg555PccwtV5KJVWVuMlW1XyW/812XCm1dGRxMDxvm/h74
AL62dVeGdMvLFEPk3vdq5UPDhAkDTWoQao8hkHjzhePXYFbpi8zhQf2CKnksxDnc
g6jMfPx3ORcx/vTjBJ0+Fo7/Nrn4K8ayLO9xKuTeTCOGyihW52qyrv0WICu70Xea
VGkoAxSZi7i4qzKQjsLVMJCOpeoJwCcNf6ocK5nwyUXxLdaWuRzgQryQJypFhjvE
Mhei6b7LdTX4Y1M02AkVwE3nE5/C7YT1jlwt1U83K6iZ5kisbjl81BYUns1mwZrG
LQNMj6ctR8+3+GGxhKMEUubZOEbqTRSSwq1uzxpHHuNSwTxjaIxtsTqH5Wg5Kpd4
ue8Xj1Z5uFjiYH6Zy5WNK81ZoA57ZHAUNOws/wDmhRhj
Оптимизация. Несмотря на то, что все вышеперечисленные способы решают одинаковую задачу, делают они это по-разному.
- Use pages и Check next page по-умолчанию осуществляют проход по пагинации в однопоточном режиме, накапливая страницы в памяти до тех пор, пока не будет достигнут лимит или не закончатся страницы. Именно поэтому, применять регулярные выражения нужно к массиву страниц $pages. Для уменьшения потребления памяти данную логику можно переопределить с помощью опции Next page as new query. При ее активации данные функции будут каждую следующую страницу подставлять в запросы как отдельный самостоятельный запрос, тем самым не накапливая их контент в памяти. Next page as new query позволяет также определить, повышать ли уровень запроса (аналогично работе инструмента $tools.query.add), или нет.
- Использование макросов подстановок для прохода по страницам позволяет сразу генерировать нужное кол-во запросов, поэтому такой парсинг всегда многопоточный, где каждый запрос обрабатывается в отдельном потоке.
- $tools.query.add подставляет запросы в очередь, поэтому данный способ также позволяет "ходить" по страницам в многопоточном режиме.
- Проход по пагинации в JS парсерах можно реализовать как в однопоточном режиме, так и в многопоточном - в зависимости от задачи. В примере JS парсера выше был рассмотрен однопоточный парсер, когда страницы "листаются" в одном потоке. Для того, чтобы сделать в JS парсере проход по пагинации многопоточным, необходимо его скомбинировать с инструментом $tools.query.add. При этом ориентироваться, что именно обрабатывается в данный момент, можно либо по уровню запроса, либо по содержимому страницы.
Мы рассмотрели все доступные методы для реализации прохода по пагинации на страницах сайтов. У каждого метода есть свои плюсы и минусы. В большинстве случаев достаточно Check next page. При этом можно регулировать нагрузку и переключаться между однопоточным и многопоточным парсингом. На реальных примерах показаны возможности каждого метода, используя их, можно без особых проблем решать практически любые задачи, которые касаются организации парсинга с проходом по пагинации.
-
Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!Скрыть объявление
Обзор вариантов прохода по пагинации
Описание различных методов прохода по страницам на сайте
Метки: