Seleniumを使用してGoogleにログイン
使用理由
ふと思いついた番組を作るために、人生で初めてセレンを使いました.
実戦圧縮なので使い方しか勉強しませんでしたが、Googleログイン中に問題が発生しました.
マイプログラム(現在)はログインプロセスをユーザーに渡します.このプロセスで、Googleログインを使用してGoogleとの連動ログインを実現しようとすると、
イランの間違いが発生します.
調べてみると、グーグル自体がソフトウェア自動化制御のブラウザへのログインを阻止しています.
Googleにログインする必要があるので、迂回してみることにしました.
検索の連続性
解決策デバッガモードの使用
https://velog.io/@binsu/selenium-%ED%99%9C%EC%9A%A9-%EA%B0%84-%EA%B5%AC%EA%B8%80-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EB%B8%94%EB%A1%9D-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0
上の文章を参考にする長すぎてスキップ!
解決策クロムオプションの追加
https://stackoverflow.com/questions/60117232/selenium-google-login-block
役に立たない.
解決策Firefoxの使用
https://stackoverflow.com/questions/60117232/selenium-google-login-block
同様に、その文章ではgeckodriverを発見する方法を用いたが、阻止された.
本当にシンプルなソリューション
多くの方法が詰まっていて、私はとても悲しんでいますが、ライブラリを見つけました.
undetected-chromedriver
最大
https://github.com/ultrafunkamsterdam/undetected-chromedriver
使い方もとても簡単です
2/22サンプルコードは単純すぎるため、少し追加しました.
ふと思いついた番組を作るために、人生で初めてセレンを使いました.
実戦圧縮なので使い方しか勉強しませんでしたが、Googleログイン中に問題が発生しました.
マイプログラム(現在)はログインプロセスをユーザーに渡します.このプロセスで、Googleログインを使用してGoogleとの連動ログインを実現しようとすると、
イランの間違いが発生します.
調べてみると、グーグル自体がソフトウェア自動化制御のブラウザへのログインを阻止しています.
Googleにログインする必要があるので、迂回してみることにしました.
検索の連続性
解決策デバッガモードの使用
https://velog.io/@binsu/selenium-%ED%99%9C%EC%9A%A9-%EA%B0%84-%EA%B5%AC%EA%B8%80-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EB%B8%94%EB%A1%9D-%EC%9A%B0%ED%9A%8C%ED%95%98%EA%B8%B0
上の文章を参考にする長すぎてスキップ!
解決策クロムオプションの追加
https://stackoverflow.com/questions/60117232/selenium-google-login-block
役に立たない.
解決策Firefoxの使用
https://stackoverflow.com/questions/60117232/selenium-google-login-block
同様に、その文章ではgeckodriverを発見する方法を用いたが、阻止された.
本当にシンプルなソリューション
多くの方法が詰まっていて、私はとても悲しんでいますが、ライブラリを見つけました.
undetected-chromedriver
最大
undetected-chromedriver
のライブラリ名https://github.com/ultrafunkamsterdam/undetected-chromedriver
使い方もとても簡単です
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import undetected_chromedriver as uc
def init_driver():
driver = uc.Chrome()
driver.get('https://velog.io')
return driver
# 로그인 버튼을 눌러주고 로그인이 되서 다시 velog로 돌아올때까지 60초를 기다린다.
def do_login(driver):
driver.find_element(By.XPATH,'//button[text()="로그인"]').click()
WebDriverWait(driver, 60).until(
EC.presence_of_element_located(
(By.XPATH, '//button[text()="새 글 작성"]')
)
)
# main에서 실행하지 않으면 오류가 남
# https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/486#issuecomment-1032009193 참조
if __name__ == "__main__" :
driver = init_driver()
do_login(driver)
# 당신의 코드를 아래에 적으세요.
これでグーグルにログインできます.2/22サンプルコードは単純すぎるため、少し追加しました.
Reference
この問題について(Seleniumを使用してGoogleにログイン), 我々は、より多くの情報をここで見つけました https://velog.io/@bluejoyq/selenium으로-구글-로그인하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol