Пошаговое руководство по Python для создания бота для входа в систему

Сегодня Интернет - это не привилегия, это необходимость. Куда бы мы ни пошли, нам требуется постоянное подключение к Интернету с использованием сети Wi-Fi или мобильной сети передачи данных.

Представьте, что мы присоединяемся к новому университету или организации, которая предоставляет нам доступ в Интернет через Wi-Fi. Организация может внедрить очень распространенную страницу входа для аутентификации своих пользователей, которая называется Captive Portal (также известная как Walled Garden).

Адаптивный портал используется по ряду причин.

  • Они используются университетами и организациями для ограничения количества устройств, подключенных к сети Wi-Fi от одной учетной записи / человека.
  • Они реализованы для предоставления доступа к службам, требующим аутентификации, оплаты или других действительных учетных данных, которые и поставщик услуг, и пользователь соглашаются придерживаться.

Есть ряд причин и преимуществ для использования адаптивного портала, но этот пост не об этом.

Моя компания внедрила специальный портал, в который пользователи должны входить, чтобы иметь доступ к Интернету. Сразу после того, как я подключился к беспроводной сети, мой браузер открывал страницу адаптивного портала, и мне нужно было ввести свое имя пользователя и пароль, после чего я смог получить доступ к Интернету. Но возникла проблема.

Хотя реализация Captive-портала хороша для защиты от несанкционированного доступа в Интернет, идентификации трафика и управления пользователями, у него есть контролируемое соединение с каждым устройством, чтобы гарантировать, что все пользователи имеют соответствующий доступ. Плененный портал может,

  • Контролируйте количество терминалов на пользователя
  • Управляйте потреблением полосы пропускания и / или скоростью загрузки за сеанс
  • Ограничьте тип разрешенного трафика и даже укажите продолжительность тайм-аута сеанса

Из-за этих ограничений, если я переводил свою систему в спящий режим или простаивал дольше нескольких минут, моя система выходила из сети. Поэтому после превышения времени простоя мне пришлось повторно войти в систему.

Как разработчик программного обеспечения, которому требуется постоянное подключение к Интернету на ходу в моей системе, мне приходилось снова и снова вводить свое имя пользователя и пароль, что делало это очень громоздким.

Что, если после выхода из системы я смогу войти на портал авторизации одним щелчком кнопки / значка в моей системе?

Это должно быть выполнимо! Нет необходимости вводить имя пользователя, а затем пароль, который в большинстве случаев должен состоять из 8 символов и содержать хотя бы одну заглавную букву бла-бла-бла. Посмотрим, как это сделать.

Реализация

Даже если вы новичок в программировании, это должно быть довольно легко. Я написал это на языке программирования Python. Python можно скачать здесь, нам также потребуется Selenium, который можно скачать здесь. Вы также можете pip install selenium (рекомендуется).

Теперь посмотрим на код.

После импорта необходимых библиотек нам нужно указать в коде следующие переменные.

Позвольте мне объяснить это сейчас,

  • Ссылка веб-сайт - это не что иное, как ссылка на страницу входа или ссылка на скрытый портал, по которой пользователь будет аутентифицироваться
  • u имя пользователя и пароль - это то, что вы вводите для входа в систему
  • element_for_username, element_for_password, element_for_submit - это имена элемента в HTML-коде страницы входа.

Позвольте мне показать вам, как их найти.

Как на рисунке выше,

  • Откройте Проверить элемент в зависимости от вашего браузера.
  • Найдите элемент HTML и скопируйте имя входного тега (в приведенном выше примере его user_name).
  • Сделайте то же самое, чтобы найти элемент HTML для пароля и кнопки отправки.
  • Эти строки будут значением для вашего element_for_username, element_for_password, element_for_submit.

Большая часть работы сделана!

Примечание. Я работаю над macOS, поэтому буду внедрять бота для Safari. Для Chrome и других используйте Chrome через chromedriver.

Скопируйте этот код вместе с остальной частью кода и сохраните его как Python (файл .py). Запустите файл, используя python script.py . Вы увидите, что браузер автоматически открывает страницу входа, вводит данные и отправляет их. Вам больше не нужно вводить имя пользователя и пароль. Разве это не круто?

Примечание. Полный код доступен на GitHub.

Использование Automator в macOS для создания приложения (необязательно)

В macOS вы можете создать приложение, которое может следовать определенному набору рабочих процессов для любой задачи, которая выполняется повторно.

В этом разделе я объясню, как превратить указанный выше скрипт Python в автоматическое приложение. Это позволит пользователю войти на портал авторизации и просто щелкнуть файл приложения-автомата.

Теперь давайте посмотрим, как это реализовать:

Шаг 1. Откройте Automator. Создайте новую службу или файлновуюслужбу.

Шаг 2. Добавьте действие «Выполнить сценарий оболочки», установив для Shell: значение / bin / bash и Пропустить ввод: на в качестве аргументов.

Шаг 3: Теперь добавьте код bash, как показано ниже. Сохраните файл на рабочем столе.

Шаг 4: Щелкните файл и Voilà!

Найти решение такой простой проблемы, как несколько раз ввести что-то вроде учетных данных, можно легко. Как только вы узнаете, в чем состоит проблема, найти решение станет проще. Надеюсь, этот пост дал вам представление о том, как работают Selenium и Python и как легко создать бота на Python.