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) 다음(카카오)