Один элемент пагинации перекрывает другой, что делать?
Есть парсер, в котором при переходе по элементу пагинации не меняется ссылка, попробовал написать цикл нажатия на элемент пагинации, но выбивает ошибку мол элемент не кликабельный потому что его перекрывает другой элемент
Message: Element <div id="goods_back" class="back_pagin"> is not clickable at point (674,566) because another element <a href="/led-tel-r-gazer-tv32-hs2-g/p71261031/"> obscures it
Так же не совсем понятно почему выводит только один товар со всей страницы, а не все.
Я так понимаю что просто сайт мусорный потому что бывает такое что тянет недействительный элемент со страницы (Грубо говоря всякий мусор)
В основном моя проблема, в которой я прошу вашей помощи заключается в том что бы помочь мне настроить переход по элементу пагинации, потому что вроде должно работать, но ничего подобного.
Вот код парсера:
print('Load:', url)
driver.get(url)
while True:
for item_el in driver.find_elements_by_css_selector(".tile-container .goods-item .goods-item-content"):
try:name = item_el.find_element_by_class_name('good-description').text
except NoSuchElementException:name = ''
# Не у всех товаров есть цена
try:
price = item_el.find_element_by_class_name('price-wrapper').text
except NoSuchElementException:
price = '-'
# try:nal = item_el.find_element_by_css_selector('').text
# except NoSuchElementException:
# nal = " "
row = name, price, #nal
print(row)
items.append(row)
try:
a_next_page = driver.find_element_by_css_selector('.pages #goods_back')
a_next_page.click()
except NoSuchElementException:
break
Вот ссылка на сайт, который я пытаюсь спарсить: https://eldorado.ua/search/?q=Gazer
Вот полный код, если кому-то понадобится: https://dpaste.org/N1JD
Ответы (1 шт):
Первая ваша проблема в том, что элемент пагинации определяется моментально, когда еще не прогрузился весь товар, в этот момент он находится на верху страницы(где потом появляется плитка с товаром, а он улетает вниз). Сделайте обычный time.sleep(2) перед входом в цикл например(незабудьте импортировать модуль time).
А проблема загрузки одного элемента в том, что вы в цикле перебора товаров переходите на след страницу на первой итерации, вам нужно переход по пагинации делать после завершения цикла, а не в нем(уберите лишние отсупы, чтоб он был в while но не в for)