Как создать простого бота с автоматическим входом в систему с помощью Python и Selenium
автоматизация несомненно, один из самых желанных навыков, которыми может обладать программист. Автоматизация обычно используется для задач, которые повторяющийся, скучный, трудоемкий, или иным образом неэффективный без использования скрипта.
С веб-автоматизация, ты можешь легко создать бота для выполнения разных задач в Интернете, например, для отслеживания конкурирующих цен на отели через Интернет и определения лучшей цены.
Лично я всегда находил входя в мою электронную почту довольно повторяющийся и скучный, так что ради простого примера, чтобы вы, ребята, началось с веб-автоматизации, давайте реализуем автоматизированный скрипт Python в войти в систему одним щелчком мыши на учетную запись Gmail.
Установка и настройка
В этом уроке мы будем использовать следующие инструменты:
- Язык программирования Python
- Браузер Google Chrome
- Selenium - браузер для автоматизации
- Веб-драйвер Chrome Driver для Chrome
Для нашей программы мы будем использовать язык программирования Python, в частности версия 2.7.11. Очень важно, чтобы мы установили довольно новая версия Python 2 потому что это идет с PIP, что позволит нам устанавливать сторонние пакеты и фреймворки, которые нам понадобятся для автоматизации наших скриптов.
После установки, перезагрузите компьютер чтобы изменения вступили в силу. Используйте команду пип установить селен
добавить Selenium Web Automation Toolkit в Python. Selenium позволит нам программно прокручивать, копировать текст, заполнять формы и нажимать кнопки.
Наконец скачайте Исполняемый файл Selenium Chrome Driver, который будет открыть Google Chrome по мере необходимости для выполнения наших автоматизированных задач. Драйвер Chrome - это просто способ открыть Google Chrome (который уже должен быть установлен) в программный доступ к стандартным операциям браузера.
Просто скачайте самый последний ZIP-файл отсюда, распакуйте chromedriver.exe
и поместите исполняемый файл в любой каталог. Обязательно запишите, где находится ваш исполняемый файл, потому что нам это понадобится, как только мы начнем.
Запуск программы
Как уже упоминалось, мы будем использовать Selenium Web Automation Framework чтобы войти программно. Первый заказ бизнеса заключается в импортировать каждый модуль нам понадобится библиотека Selenium Python, которую мы установили с помощью PIP.
Давайте откроем IDLE или другой редактор кода, создать новый файл Python с .ру
расширение и импортировать следующие модули:
из селена импортировать веб-драйвер из selenium.webdriver.common.by import By из selenium.webdriver.support.ui импортировать WebDriverWait из selenium.webdriver.support импортировать ожидаемые_условия как EC
Далее мы будем создать две строки которые представляют наши имя пользователя и пароль для учетной записи электронной почты. Обратите внимание на заглавные буквы, особенно в строке пароля.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Теперь, когда у нас все настроено, чтобы начать процесс входа в систему, нам нужно на самом деле указать окну браузера открыть Google Chrome, а также перейти на страницу входа в Gmail.
Если вы еще этого не сделали, убедитесь, что ваш скрипт Python сохранены в том же месте, что и chromedriver.exe
исполнимый мы добыли раньше.
browser = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # identifier'))
В поисках нашего элемента
Мы успешно получили браузер для открытия Gmail, но теперь нам нужно найти поля ввода на веб-странице, на которую мы можем введите наше имя пользователя и пароль.
Мы можем сделать это легко, используя встроенные инструменты разработчика Chrome. Нам нужно только щелкнуть правой кнопкой мыши на полях ввода и выбрать “Осмотреть” меню.
Теперь это просто вопрос используя HTML Я бы
атрибуты найти элементы программно.
В приведенном ниже коде мы просто поиск поля ввода имени пользователя Я бы
, а также наполняя это с желаемым текстом. Тогда мы в поисках кнопки Далее который переходит с быстрой анимацией, прежде чем запрашивать у нас пароль.
send_keys ()
а также нажмите ()
команды делают именно так, как их имена предполагают - send_keys ()
имитирует нажатия клавиш в желаемом элементе, и нажмите ()
моделирует щелчок мыши.
# введите имя пользователя и нажмите следующую кнопку username = browser.find_element_by_id ('Email') username.send_keys (usernameStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
Мы можем сделать то же самое для поля ввода пароля, а также для кнопки Вход в систему. Тем не менее, эти два элемента появляются на странице только после анимированный переход.
Тем не менее, нам нужна программа для подожди несколько секунд прежде чем возобновить поиск элементов. По большей части этот этап кода ничем не отличается от предыдущего. Мы просто должны поручить браузеру подождите максимум 10 секунд прежде чем найти пароль.
# дождаться перехода, затем продолжить заполнять элементы password = WebDriverWait (браузер, 10) .until (EC.presence_of_element_located ((By.ID, 'Passwd')))) password.send_keys (passwordStr) signInButton = browser.find_element_by_id ('signIn' ) signInButton.click ()
Заключительные слова
Вы только что закончили создание бота который посещает веб-страницу, вводит ваше имя пользователя и пароль и успешно регистрирует вас, автоматизация всего процесса до одного клика. Я знаю, что это была простая демонстрация, но возможности безграничны.
На этой же ноте, быть осторожен о том, как вы используете этот навык. Некоторые люди используют боты и автоматизированные сценарии для ввода лотерей тысячи раз, полностью игнорируя условия. Другие используют их для более злых намерений.
Просто убедитесь, что автоматизация используется целенаправленно и осторожно, потому что это действительно очень необходимый навык в сообществе программистов!
Примечание редактора: Это сообщение написано для Hongkiat.com Малик Брахими. Малик - разработчик, расположенный в районе Большого Бостона, любит еду, футбол и программирование (любимый язык Python)..
- Скачать исходный код