Перед созданием issue, пожалуйста, убедитесь, что вы поставили звездочку этому репозиторию, это очень важно для меня.
Инструкция по использованию доступна в документации, там все есть.
Проблемы с использованием могут быть не сразу решены авторами, но вы можете задать вопрос на платформе Zhihu Star, ответ будет дан как можно скорее.
Пожалуйста, опишите вашу проблему следующими пунктами:
Совет: Добавьте метод ленивой загрузки для eles
. В настоящее время многие списки элементов загружаются динамически, при прокрутке страницы список элементов продолжает увеличиваться. Я считаю необходимым наличие метода, аналогичного listen.steps()
, чтобы динамически загружать список элементов. В данный момент я использую новый итератор для реализации этого в локальной среде, но хотел бы видеть такой метод в библиотеке.
Пример: https://www.zhipin.com/web/geek/job-recommend?ka=header-job-recommend
XPath для лениво загружаемого списка элементов: //div[starts-with(@class, 'job-card-wrap')]
Класс внешнего объекта:```python
class LazyLoadElementList:
def init(self, tab, xpath):
# Получаем начальный список элементов при инициализации
self.tab = tab
self.xpath = xpath
self.element_list = tab.eles(xpath)
self.current_index = 0
def __iter__(self):
return self # Возвращаем себя как итератор
def __next__(self):
# Проверяем, закончился ли текущий список элементов
if self.current_index < len(self.element_list):
element = self.element_list[self.current_index]
self.current_index += 1
return element
else:
# Если нет новых элементов, попробуем загрузить больше
self.load_more_elements()
# Если после загрузки всё ещё нет новых элементов, выбрасываем StopIteration
if self.current_index >= len(self.element_list):
raise StopIteration
element = self.element_list[self.current_index]
self.current_index += 1
return element
def load_more_elements(self):
"""Метод имитирует прокрутку для загрузки новых элементов и обновляет список элементов."""
```markdown
# Вы можете здесь запустить процесс загрузки новых элементов путём прокрутки страницы или другими способами
новые_элементы = self.tab.eles(self.xpath)
# Определяем, появились ли новые элементы
if len(новые_элементы) > len(self.element_list):
self.element_list = новые_элементы # Обновляем список элементов
# Здесь можно добавить задержку прокрутки или другие действия, для примера используется простое ожидание
time.sleep(1)