


Парсинг сайтов. Python
Добрый вечер, пытаюсь реализовать парсер для сайта https://5ka.ru/special_offers , чтобы по итогу получить полный список товаров с сайта. По переходу на сайт вам доступен каталог первых 20 или 30, не суть важно, определенного количества товаров. После надо подгружать следующую группу через кнопку 'Загрузить еще', но проблема в том что после ее нажатия url страницы не меняется. Собственно вопрос, как можно реализовать, чтобы все страницы через эту кнопку сразу загружались. Слышал что-то о библиотеке Silenium.
Но это только первая проблема, вторая заключается в том что парсер подгружает только половину из доступных в первом листе товаров, если запустите код, то увидите, что последним элементом будет Айва 1кг, хотя там дальше еще 10 или 15 позиций.
Вот код:
import requests
import lxml
from bs4 import BeautifulSoup
url = 'https://5ka.ru/special_offers'
html_text = requests.get(url).text
html_text_lxml = BeautifulSoup(html_text, 'lxml')
a = html_text_lxml.find_all('div','product-card item')
print(a)
Заранее спасибо!
селениум это фреймворк автоматизации тестирования и он не нужен для парсинга.
достаточно изучить запросы и ответы сайта при переходах по кнопкам, и далее имитировать их путём вызова через любой доступный вам REST фреймворк. делаете http вызовы, парсите ответы - профит.
Можно еще попробовать библиотеку requests_html она позволяет работать с JS. То есть к примеру можно прокрутить страницу или нажать на какой-то элемент (кнопку). С ее помощью после загрузки страницы вы можете выполнить свой JS код.