Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用Python在Chrome浏览器中打开GoogleSheet文档?_Python 3.x_Selenium Webdriver_Google Sheets_Selenium Chromedriver - Fatal编程技术网

Python 3.x 如何使用Python在Chrome浏览器中打开GoogleSheet文档?

Python 3.x 如何使用Python在Chrome浏览器中打开GoogleSheet文档?,python-3.x,selenium-webdriver,google-sheets,selenium-chromedriver,Python 3.x,Selenium Webdriver,Google Sheets,Selenium Chromedriver,(问题编辑) 我正在使用下面的代码尝试在我的Chrome浏览器上打开一个已经存在的Google工作表。要求在浏览器中打开图纸 但我不确定硒是否是最好的选择。是否有其他方式在浏览器中验证和访问/打开文档 目前,我正在尝试使用硒进行锻炼。下面的代码将打开浏览器和登录屏幕。输入ID并单击[下一步]按钮后,我点击下面的屏幕。想不出如何绕过这个 以下是代码(建议更正:@Priyank Vekariya): 您应该在页面的html代码中验证标记的名称。当我检查元素的名称时,您试图查找的元素(电子邮件或电话)

(问题编辑) 我正在使用下面的代码尝试在我的Chrome浏览器上打开一个已经存在的Google工作表。要求在浏览器中打开图纸

但我不确定硒是否是最好的选择。是否有其他方式在浏览器中验证和访问/打开文档

目前,我正在尝试使用硒进行锻炼。下面的代码将打开浏览器和登录屏幕。输入ID并单击[下一步]按钮后,我点击下面的屏幕。想不出如何绕过这个

以下是代码(建议更正:@Priyank Vekariya):


您应该在页面的html代码中验证标记的名称。当我检查元素的名称时,您试图查找的元素(电子邮件或电话)的名称不同。在我的系统中,它将名称显示为“标识符”。您可以通过该元素的id进行尝试。 所以,您应该替换下面的代码。也许会有帮助

driver.find_element_by_name("identifier").send_keys("My_Email_@abc.com")

谢谢。更新

我曾尝试使用谷歌浏览器、微软Edge和Mozilla Firefox,通过Selenium直接登录Gmail或YouTube来访问谷歌表单。我还尝试通过Stack Overflow和其他服务使用侧通道Google登录。只有一次,在我被扔进疯狂的验证码巴士之前,我能够走得足够远

在经历了所有这些失败之后,我决定对这个问题进行更多的思考。我确定您无需登录Google即可访问Google Drive中的文档。您只需要从控制文档的帐户共享Google工作表,该帐户具有使用Python读取工作表所需的权限

共享工作表后,您可以使用Selenium访问和查询它

从selenium导入webdriver
从selenium.webdriver.chrome.options导入选项
chrome_options=options()
chrome\u选项。添加参数(“开始最大化”)
chrome_选项。添加_参数(“--disable infobar”)
chrome\u选项。添加\u参数(“--disable extensions”)
chrome_选项。添加_参数(“--disable popup blocking”)
#禁用横幅“Chrome由自动测试软件控制”
chrome_选项。添加_实验_选项(“useAutomationExtension”,False)
chrome_选项。添加_实验性_选项(“ExcludeSwitchs”,['enable-automation'])
driver=webdriver.Chrome('/usr/local/bin/chromedriver',options=Chrome\u options)
司机,上车https://docs.google.com/spreadsheets/d//edit?usp=sharing')
这是共享的谷歌表单,不需要登录即可访问或编辑

原创帖子


谷歌禁止使用自动脚本,比如Selenium登录Gmail

当您单击“了解更多”时,您会收到此消息

请注意这一行:是通过软件自动化而不是人工控制的

您可以绕过这一点,但您必须通过另一个门户登录,例如堆栈溢出,这将允许您使用Gmail凭据登录。一旦发生这种情况,您就可以访问您的谷歌工作表。


如果您需要这方面的帮助,请告诉我,我将尝试为您编写一些代码。

谢谢您的回答,但登录后,我现在遇到一个屏幕,上面显示:“无法在此浏览器中为您签名,或者应用可能不安全。了解更多信息请尝试使用其他浏览器。如果您已经在使用受支持的浏览器,则可以刷新屏幕并再次尝试登录。“。我已经编辑了这个问题,包括这个。好的。谢谢你的回复。请给我举个例子。谢谢你的帮助。我们在这里再次见面:)我正在做一个例子,但谷歌似乎增加了更多的功能来检测Selenium登录,即使是通过堆栈溢出。当我尝试堆栈溢出路由时,我得到了各种各样的验证码,必须绕过它们。目前我无法绕过登录问题。我会继续帮你解决这个问题的。我贴了一份工作通知。请让我知道它是否适用于您的用例。您的解决方案非常有效!再次感谢你的帮助!
driver.find_element_by_name("identifier").send_keys("My_Email_@abc.com")
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("--disable-infobars")
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-popup-blocking")

# disable the banner "Chrome is being controlled by automated test software"
chrome_options.add_experimental_option("useAutomationExtension", False)
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])

driver = webdriver.Chrome('/usr/local/bin/chromedriver', options=chrome_options)
driver.get('https://docs.google.com/spreadsheets/d/<google provided random string>/edit?usp=sharing')