Я недавно практиковал свои навыки работы с Интернетом и наткнулся на эту фантастическую работу c Фабио Невеса: Если вы любите путешествовать, позвольте Python помочь вам очистить лучшие дешевые полеты!
Вместо того, чтобы очищать сайт «Каяк», такой как Фабио, я решил попробовать и создать бота, который очистил бы сайт Ryanair .
Мой подход:
Я принимаю пользовательские данные для их «аэропорта вылета». Затем я выбираю текстовое поле «От», в котором отображается раскрывающийся список. Этот раскрывающийся список содержит 234 местоположения.

city_from = input('From which city? ') #Takes users input
Следующим шагом, который я пытался реализовать, было нахождение соответствия для ввода пользователя с параметрами в раскрывающемся списке. И продолжить, чтобы щелкнуть эту соответствующую опцию.
elements_list = driver.find_elements_by_xpath('//div [@class="core-list-ref"]') ##Finds all Elements/Cities in the dropdown list
list_pos = [value for value in elements_list].index(str(city_from)) #Finds the value(city name) for each element in the dropdown list and tries to locate the position of the inputed 'airport of departure' in the list.
elements_list[list_pos].click() #I then try to select this option.
Однако ...
Кажется, что не все 234 города появляются, когда я использую следующий код:
driver.find_elements_by_xpath('//div [@class="core-list-ref"]')
Только первые 79 появляются Ольборг- Генуя, другие города кажутся «скрытыми». Я обнаружил, что когда я вручную прокручиваю вниз до выпадающего списка и пытаюсь повторно запустить код, он появляется. Поэтому я попытался реализовать .move_to_element(element)
, чтобы бот прокрутился до последнего аэропорта в выпадающем списке. Но это все еще только позволяет прокрутить до 79-го аэропорта (Генуя). Это делает мой бот sh, когда пользователь вводит такие аэропорты, как «Цюрих».
Это моя первая попытка очистки. Как я могу преодолеть эту проблему, или есть лучший способ выбрать «аэропорт вылета». Пожалуйста, дайте мне знать, если вам нужно больше деталей.