셀레니움 구글 로그인 차단 우회하기 (with 파이썬)

    셀레니움으로 자동화를 하는 과정에서 구글 로그인이 필요한 경우가 있다.

    그냥 되는 경우도 있지만 '로그인할 수 없습니다.'라는 메시지와 함께 구글 로그인이 막히는 경우가 있는데 다른 브라우저를 사용하라고 안내한다.

     

    자세히 알아보기로 들어가면 위와 같이 안내가 나온다.

    소프트웨어 자동화로 제어되는 브라우저는 로그인을 허용하지 않는다는...

     

    하지만 무조건 로그인이 필요한 나 같은 사람은 그럴 수 없다.

    그래서 방법을 찾아보았다.

     

    두 가지 방법이 있었는데 하나만 해도 되는 사람이 있고 둘 다 안되는 경우도 있다.

    필자는 두 번째 방법이 성공했기 때문에 더 찾지 않았으나 스택오버플로우에 다른 방법도 제시되어 있다.

    둘 다 안되면 구글링 해보길 바란다.

     

     

     

    해결방법 1. 보안 수준이 낮은 앱의 액세스

    1. 크롬(웹드라이버 말고)에서 google 계정 관리로 들어간다.

    필자는 크롬에 로그인되어 있어서 이쪽으로 들어갔지만 아닌 경우 구글에서 계장 관리를 검색하자.

     

    2. 좌측 사이드바에서 보안 클릭

    3. 사용 안함 클릭

    4. 사용으로 변경

     

    크롬을 끄고 다시 셀레니움을 실행해보면 되는 경우가 있다고 한다.

    필자는 되지 않아서 두 번째 방법을 찾았다.

     

    해결방법 2. 스택오버플로우 경유하기

    스택오버플로우 뿐 아니라 구글 로그인을 제공하는 사이트 중 일부는 될 것으로 생각한다.

    필자는 그냥 스택오버플로우로 하였다.

     

    방법은 간단하다.

    구글 로그인 페이지가 아니라 스택오버플로우 로그인 페이지로 간다.

    거기서 구글 로그인을 선택해 로그인을 진행하면 된다.

    로그인이 되면 원하는 작업 페이지 gmail, google ads 등으로 이동하면 로그인 되어있다.

     

    코드 작성이 귀찮으면 아래 코드를 복사해서 쓰기 바란다.

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    
    driver = webdriver.Chrome()
    driver.get('https://stackoverflow.com/')
    time.sleep(0.5)
    driver.find_element_by_xpath('/html/body/header/div/ol[2]/li[2]/a[1]').click()
    time.sleep(0.5)
    driver.find_element_by_xpath('//*[@id="openid-buttons"]/button[1]').click()
    time.sleep(0.5)
    driver.find_element_by_id('identifierId').send_keys('아이디')
    driver.find_element_by_xpath(
        '//*[@id="identifierNext"]/div/button/div[2]').click()
    time.sleep(2)
    
    driver.find_element_by_xpath(
        '//*[@id="password"]/div[1]/div/div[1]/input').send_keys('비밀번호)
    driver.find_element_by_xpath(
        '//*[@id="passwordNext"]/div/button/div[2]').click()
    time.sleep(2)
    
    driver.get('자동화할 구글 사이트 주소')
    time.sleep(2)
    

    필자는 스택오버플로우 접속 후 로그인을 눌러서 들어갔지만 아마도 로그인 페이지로 바로 이동해도 될 것이다.

    단, 스택오버플로우에서 캡챠로 차단될 수 있으니 이점은 주의하자. 

     

    ※ 함께 보면 좋은 글

     

    셀레니움 네이버 로그인 캡챠 피하기 클릭!

    유튜브 재생목록 총 재생시간 구하는 코드 클릭!

    셀레니움 네이버 검색광고 API 활용 잔액확인 하는 법 클릭!

    셀레니움 최신버전 iframe 문법 클릭!

    크롬 굵은 폰트 번짐 해결하는 방법 클릭!