尝试使用 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的表演