Как осуществить переход на следующий элемент пагинации, если не меняется ссылка при переходе на сайте?
Пишу парсер для вот этого сайта: https://eldorado.ua/search/?q=Gazer
И на этом сайте при переходе на следующую страницу не меняется url, и программе не удается найти элемент "Следующая страница", как быть?
Вот код парсера:
Код элемента пагинации:
<li class="page-i"><div class="back_pagin" id="goods_back"><img class="to-left" src="/img/icons/icon-pagination-left.svg" alt="icon-pagination-left"></div></li>
pages .page-i:last-child {
border: none;
}
.pages .page-i {
width: 40px;
height: 100%;
margin: 0 4px;
}
ul:not(.browser-default) li {
list-style-type: none;
}
.pages>div, .pages li {
cursor: pointer;
display: inline-block;
color: #484b4c;
font-size: 16px;
vertical-align: top;
}
Ответы (1 шт):
Пагинация происходит не по ссылкам, а с помощью API. Вы нажимаете на номер страницы, срабатывает скрипт с запросом и вам сервер отправляет товары. Как вы заметили, то никакого перехода не происходит, так как страница не перезагружается, просто скрипт вам отрисовывает новые данные.
Ссылка на API
https://api.eldorado.ua/v1/goods_attributes_values_output/?conditions=goods_cat_id=0&good_id=1208354%20%20%20%20&columns=id,parent_id,mpath,icon,name,name_ua,descr,descr_ua,order_num&lang=ru'
Где в параметрах указан good_id , это первый товар из найденых. Изучите эти запросы с помощью отладчика во вкладке 'Сеть' для нахождения нужной информации
Если не хотите работать с API, можете воспользоваться Selenium и там имитировать нажатие на пагинацию
Пример кода перехода по пагинации:
links = driver.find_elements_by_class_name('page-link') #берем все кнопки пагинации
for link in links:# пробегаем по ним и парсим контент
link.click()
#тут пишите парсер