Вы знаете Selenium: это инструмент обеспечения качества, используемый для автоматизации тестирования. Но ничто не мешает нам использовать его дома, для личных нужд. Подумайте о повседневных задачах, которые вы могли бы автоматизировать. Вы можете считать лайки на YouTube, смотреть стоимость авиабилетов, следить за загрязнением воздуха в вашем родном городе или ждать, пока что-то снова появится в наличии.

В этой истории я хотел бы автоматизировать реальный сценарий наблюдения за ценой. Допустим, мы хотим получать информацию об изменении цены на телефон Pixel 3a. Мы собираемся использовать Selenium WebDriver, Python 3 и браузер Google Chrome под Windows. Позвольте мне пропустить часть настройки программного обеспечения, так как она описана в этой статье: Установка Selenium WebDriver с Python и PyCharm с нуля

Давайте кодировать!

Прежде всего, мы импортируем пару модулей: re (регулярное выражение) и ctypes. Затем указываем путь к драйверу Chrome и устанавливаем для параметра неявное ожидание значение 2 секунды (что дает время для загрузки искомых элементов).

Затем мы открываем URL-адрес Google Store, разворачиваем окно браузера и нажимаем на необходимые ссылки, чтобы перейти на страницу Pixel 3a, используя методы find_by_xpath и find_by_link_text. Затем захват значения цены и закрытие браузера. На этом работа Selenium WebDriver завершена, все остальное — Python.

Мы получили цену, но это тип данных list (список из одного элемента) и перед числом стоит символ $. Для разделения цифр мы используем ранее импортированный модуль re, а затем преобразуем тип list в integer.

Теперь мы используем модуль ctypes для отображения диалогового окна с информацией о ценах, если цена изменилась.

В конце мы можем настроить планировщик для запуска скрипта так часто, как это необходимо. Никогда не пропустите распродажу!