Очистите веб-страницу, которую нужно прокручивать, чтобы загрузить все продукты ⇐ CSS
-
Anonymous
Очистите веб-страницу, которую нужно прокручивать, чтобы загрузить все продукты
Я использую Scrapy для анализа элементов с веб-сайта. Он загружается правильно, однако получает только 12 из 48 товаров на каждой странице. Мне нужно реализовать прокрутку вниз, чтобы загрузить продукты, а затем получить ссылки на металлолом. Большую часть дня я пытался найти способ сделать это (я думаю, что лучшим вариантом, на мой взгляд, было бы прокрутить вниз, подождать 10 секунд и вернуться к середине, чтобы убедиться, что все элементы загружены). Однако мои навыки работы в Интернете очень плохи, и что-то не так с моим скриптом.
def parse_product(self, ответ): URL = ответ.url заголовок = self._parse_title(ответ) если не заголовок: self.logger.warn(f"Информация для {url} не найдена.") возвращаться описание = self._parse_description(ответ) цвет = self._parse_color(ответ) урожай { "URL": URL, «титул»: заголовок, «дерево»: self._parse_tree(ответ), «описание»: self._parse_description(ответ), "selected_color": self._parse_color(ответ), «цена»: self._parse_price(ответ), } def parse(self, ответ): # Прокрутите страницу вниз, чтобы загрузить больше продуктов сценарий = """ функция прокруткиToMiddle() { window.scrollTo(0, document.body.scrollHeight); setTimeout(функция() { window.scrollTo(0, document.body.scrollHeight/2); }, 10000); // задержка 10 000 миллисекунд } прокруткаСреднего(); """ ответ.данные = сценарий для Product_link в ответе.css('a.product-box-link::attr(href)').getall(): выход response.follow(product_link, callback=self.parse_product)
Я использую Scrapy для анализа элементов с веб-сайта. Он загружается правильно, однако получает только 12 из 48 товаров на каждой странице. Мне нужно реализовать прокрутку вниз, чтобы загрузить продукты, а затем получить ссылки на металлолом. Большую часть дня я пытался найти способ сделать это (я думаю, что лучшим вариантом, на мой взгляд, было бы прокрутить вниз, подождать 10 секунд и вернуться к середине, чтобы убедиться, что все элементы загружены). Однако мои навыки работы в Интернете очень плохи, и что-то не так с моим скриптом.
def parse_product(self, ответ): URL = ответ.url заголовок = self._parse_title(ответ) если не заголовок: self.logger.warn(f"Информация для {url} не найдена.") возвращаться описание = self._parse_description(ответ) цвет = self._parse_color(ответ) урожай { "URL": URL, «титул»: заголовок, «дерево»: self._parse_tree(ответ), «описание»: self._parse_description(ответ), "selected_color": self._parse_color(ответ), «цена»: self._parse_price(ответ), } def parse(self, ответ): # Прокрутите страницу вниз, чтобы загрузить больше продуктов сценарий = """ функция прокруткиToMiddle() { window.scrollTo(0, document.body.scrollHeight); setTimeout(функция() { window.scrollTo(0, document.body.scrollHeight/2); }, 10000); // задержка 10 000 миллисекунд } прокруткаСреднего(); """ ответ.данные = сценарий для Product_link в ответе.css('a.product-box-link::attr(href)').getall(): выход response.follow(product_link, callback=self.parse_product)
Мобильная версия