Написание сценариев на Python-одна из самых интригующих и увлекательных вещей, которыми можно заниматься во время изучения Python. Автоматизация и управление браузером-одна из них.
В этой конкретной статье мы рассмотрим, как войти в учетную запись Facebook с помощью Python и возможностей selenium.
Selenium автоматизирует и контролирует браузеры и их активность. Мы можем кодировать по-своему, чтобы управлять задачами браузера с помощью selenium. В первую очередь, это предназначено для автоматизации веб-приложений в целях тестирования, но, безусловно, не ограничивается только этим. Скучные задачи веб-администрирования также могут быть автоматизированы. По мере того как вы узнаете больше, становится так весело видеть, как все происходит автоматически, и экономить время на выполнении бесполезных задач снова и снова.
Мы используем selenium здесь, чтобы открыть нужный нам сайт (в данном случае Facebook), и там мы проверяем элементы в поле электронной почты, поле пароля и кнопке входа, чтобы найти их идентификатор.
- Используя функцию find_element_by_id (), предоставляемую модулем selenium, мы можем найти необходимый элемент (поле имени пользователя, поле пароля, кнопка входа).
- Используя функцию send_keys (), предоставляемую модулем selenium, мы отправим данные в поле.
- Требуется установка сторонних модулей
Selenium
getpass
Additional Requirement : geckodriver for firefox and
chromedriver for chrome
2. Импорт необходимых модулей
- Селен : для автоматизации браузера
- Время : приостановить запуск скрипта на несколько секунд, так как браузеры пытаются обнаружить элементы автоматизации, если мы вводим слишком быстро
- Принимая имя пользователя и пароль в качестве входных данных от пользователя
С помощью ввод() функция и передача сообщения с запросом в качестве аргумента. - Открытие браузера и необходимого веб-сайта
веб-драйвер.Хром() откроется новое окно chrome. Мы сохраним его объект в переменной с именем драйвер.
Теперь, используя функцию get, мы откроем веб-сайт Facebook. - Элемент поиска для отправки данных и отправки ввода
Используйте инструмент проверить элемент на элементе браузера, идентификатор которого вы хотите найти. В этом случае мы проверим поле имени пользователя, поле пароля, кнопку входа, чтобы найти их идентификатор. А затем используйте этот идентификатор в сочетании с функцией selenium find_element_by_id() чтобы найти его на веб-странице и сохранить в переменных для последующего использования. Затем с помощью send_keys() мы отправим данные по элементам, найденным ранее. - Закрытие браузера
После всех вышеперечисленных шагов мы должны выйти из сеанса, и это будет достигнуто с помощью driver.quit().
Примечание: Здесь водитель это имя переменной, которую вы выбрали для webdriver.Хром().
Полный Код:
from selenium import webdriver
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
usr=input('Enter Email Id:')
pwd=input('Enter Password:')
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.facebook.com/')
print ("Opened facebook")
sleep(1)
username_box = driver.find_element_by_id('email')
username_box.send_keys(usr)
print ("Email Id entered")
sleep(1)
password_box = driver.find_element_by_id('pass')
password_box.send_keys(pwd)
print ("Password entered")
login_box = driver.find_element_by_id('loginbutton')
login_box.click()
print ("Done")
input('Press anything to quit')
driver.quit()
print("Finished")
Посмотрите, как такой краткий фрагмент кода может автоматизировать ваши действия.
Бонус:
Мы также можем ввести пароль, не отображая его на экране, в целях безопасности. Для этого мы должны включить еще один модуль под названием getpass. Теперь, всего лишь изменив инструкцию ввода пароля, мы можем ввести пароль, не отображая его на экране.
from getpass import getpass
pwd = getpass('Enter Password:')
Getpass запрашивает у пользователя пароль без повторения. В основном это позволяет вам вводить пароль, не показывая его на экране.
Аналогичным образом вы также можете автоматизировать многие другие вещи, такие как вход в Twitter, твиты, выход из Facebook и многое другое.