Selenium Python을 사용하여 웹 사이트에 로그인
때때로 우리는 웹사이트 로그인과 같은 브라우저에서 작업을 자동화하고 싶을 수 있습니다. 로그인이 필요한 웹 사이트에서 데이터를 스크랩하려는 시나리오에서 유용할 수 있습니다.
Python은 Selenium과 같은 웹 자동화를 위한 많은 패키지를 제공합니다.
Selenium Python을 사용하여 웹 사이트에 로그인
Selenium은 웹 브라우저를 위한 강력한 자동화 및 테스트 도구입니다. 우리는 웹 브라우저를 제어하고 특정 작업을 수행하는 스크립트를 작성합니다.
Selenium 및 Chrome 웹 드라이버 설치
Selenium을 설치하려면 다음 명령을 사용합니다.
#Python 3.x
pip install selenium
ChromeDriver는 Selenium WebDriver가 Chrome과 상호 작용하는 데 사용하는 또 다른 실행 파일입니다. Chrome 웹 브라우저에서 작업을 자동화하려면 ChromeDriver도 설치해야 합니다.
Chrome 브라우저 버전에 따라 호환되는 드라이버를 선택해야 합니다. 다음은 Chrome 드라이버를 설치하고 구성하는 단계입니다.
- 이 링크를 클릭하세요. Chrome 브라우저의 버전과 운영 체제 유형에 따라 Chrome 드라이버를 다운로드합니다.
- Chrome 브라우저의 버전을 확인하려면 Chrome 오른쪽 상단 모서리에 있는 세 개의 점을 클릭하고 도움말을 클릭한 다음 Google Chrome 정보를 선택합니다. 정보 섹션에서 Chrome 버전을 확인할 수 있습니다.
- zip 파일의 압축을 풀고 Chrome 드라이버를 실행합니다.
Selenium Python을 사용하여 웹 사이트에 자동 로그인하기 위한 코드
다음 코드에서 WebDriver 인스턴스를 만들고 Chrome 드라이버의 경로를 지정했습니다. 그런 다음 대상 웹 사이트의 URL
을 드라이버 인스턴스에 지정했습니다. 원하는 브라우저에서 대상 웹사이트를 엽니다.
나중에 로그인하는 데 사용할 변수에 더미 이메일과 비밀번호를 저장했습니다. 이메일과 비밀번호를 자동으로 입력하고 로그인 버튼을 클릭하려면 해당 항목의 name/id
(사용 가능한)를 찾아야 합니다. 웹 요소.
브라우저에서 원하는 웹사이트를 열고 요소를 마우스 오른쪽 버튼으로 클릭한 다음 요소 검사를 클릭해야 합니다. 여기에서 요소의 이름을 포함한 HTML 코드를 볼 수 있습니다.
요소의 이름을 복사하여 드라이버 인스턴스와 함께 find_element_by_name()
메서드에 인수로 전달합니다. 나머지 두 요소에 대해 프로세스를 반복합니다.
이 메서드는 변수에 저장할 웹 요소를 반환합니다. sendkeys()
메소드를 사용하여 관련 필드에 이메일과 비밀번호를 자동으로 입력합니다.
사용자가 프로세스의 지연을 통해 어떤 일이 일어나는지 관찰할 수 있도록 필드를 채운 후 2초의 타이머를 설정했습니다. 마지막으로 로그인 버튼은 click()
메소드를 통해 자동으로 클릭됩니다.
예제 코드:
# Python 3.x
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.maximize_window()
driver.get("https://discpersonalitytesting.com/login-here/")
email = "myemail@email.com"
password = "mypassword1@23"
email_textfield = driver.find_element_by_name("email")
password_textfield = driver.find_element_by_name("password")
login_button = driver.find_element_by_name("LoginDAPLoginForm")
email_textfield.send_keys(email)
time.sleep(2)
password_textfield.send_keys(password)
time.sleep(5)
login_button.click()
출력:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn