尝试使用 selenium python 脚本登录谷歌

Posted

技术标签:

【中文标题】尝试使用 selenium python 脚本登录谷歌【英文标题】:Trying to sign into google using a selenium python script 【发布时间】:2021-10-01 01:26:06 【问题描述】:

我使用 selenium 打开并登录谷歌帐户作为我的第一步。我已经成功打开并填写了电子邮件回复,尽管在提交时我收到了错误

“此浏览器或应用程序可能不安全。了解详情尝试使用 不同的浏览器。如果您已经在使用受支持的浏览器,则 可以刷新屏幕并再次尝试登录。”来自 google。

有没有办法解决这个问题?下面是我的代码。


from selenium import webdriver

from selenium.webdriver.common.keys import Keys

import time

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://accounts.google.com/")
print(driver.title)

search = driver.find_element_by_name("identifier")

search.send_keys("email goes here")

search.send_keys(Keys.RETURN)

【问题讨论】:

你可以参考这个gmail 这能回答你的问题吗? “This browser or app may not be secure” error while attempting to login in to Gmail account using GeckoDriver Firefox through Selenium and Python 【参考方案1】:

遇到了同样的问题,我在 GitHub 中找到了 this 线程。

对我有用的解决方案是使用这个驱动程序:undetected_chromedriver 而不是普通的ChromeDriver

    import undetected_chromedriver.v2 as uc

    chrome_options = uc.ChromeOptions()
    chrome_options.add_argument("--disable-extensions")
    chrome_options.add_argument("--disable-popup-blocking")
    chrome_options.add_argument("--profile-directory=Default")
    chrome_options.add_argument("--disable-plugins-discovery")
    chrome_options.add_argument("--incognito")
    chrome_options.add_argument("user_agent=DN")

    self.browser = uc.Chrome(options=chrome_options)
    self.browser.delete_all_cookies()

    # example of loggin in to youtube without getting that issue
    self.browser.get('http://youtube.com')

    login_button_init = self.browser.find_element_by_xpath("//a[@aria-label='Sign in']") 
    login_button_init.click()

    # locate the login button
    login_button = self.browser.find_element_by_xpath("//paper-button[@aria-label='Sign in']")
    login_button.click()

    # get email and set to email input box
    email = self.browser.find_element_by_id("identifierId")
    myemail = os.environ.get('YOUTUBE_EMAIL')
    email.send_keys(myemail)

    # click next button
    email_next_button = self.browser.find_element_by_id("identifierNext")
    email_next_button.click()

    # get password and set to password input box
    password = self.browser.find_element_by_name("password")
    mypassword = os.environ.get('YOUTUBE_PASSWORD')
    password.send_keys(mypassword)
    sleep(2)

    # click next button to log in
    pass_next_button = self.browser.find_element_by_id("passwordNext")
    pass_next_button.click()

【讨论】:

以上是关于尝试使用 selenium python 脚本登录谷歌的主要内容,如果未能解决你的问题,请参考以下文章

Python如何实现自动登录和下单的脚本,请看selenium的表演

无法使用 Selenium 自动登录 Chase 站点

Python+selenium(11)脚本模块化&参数化

Python用selenium实现模拟登录,各种抢票脚本的第一步

Selenium2+python自动化10-登录案例

Selenium2+python自动化10-登录案例