Language/Python
[Python] selenium - 크롤링 (1) 자동로그인
도토리즈
2023. 6. 21. 20:15
아마도 대부분 포털 사이트의 로그인은
아이디 입력하는 곳은 input type= text이고
비밀번호 입력하는 곳은 input type = password
버튼 클릭하는 부분은 button type = submit 일거다!
그래서 이 코드로 다음 로그인 ,네이버 로그인 둘 다 url만 바꿔주면 가능함
비슷한 페이지가 있다면 거기도 가능할것임,,아마도
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service as ChromeService
@api_view(['POST'])
def login_test(request) :
options = webdriver.ChromeOptions()
# 코드가 동작이 끝나도 브라우저가 종료되지 않는 옵션 추가
options.add_experimental_option("detach", True)
# 크롬 드라이버 경로
path = 'C:\\chromedriver\\chromedriver.exe'
service = ChromeService(executable_path=path)
driver = webdriver.Chrome(service= service , options=options)
# 자동 로그인 실행할 주소 [로그인 페이지]
url = "https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/"
# 로그인 페이지로 이동
driver.get(url)
# 창 크기 전체로 조정
driver.maximize_window()
time.sleep(3)
driver.find_element(By.XPATH, '//input[@type="text"]').send_keys('test_id')
driver.find_element(By.XPATH, '//input[@type="password"]').send_keys('test_pw')
driver.find_element(By.XPATH, '//button[@type="submit"]').click()
return Response()
django로 api화 시켰는데 파이썬으로 구현하면 api_view랑 return 만 빼고 쓰면 사용 가능함
테스트 1) 네이버
테스트 2) 다음(카카오)