Python 使用 urllib 登录 Google

Python Log into Google using urllib

开始之前:我已经看过 Log into Google account using Python? 但我觉得它没有完全解决我的问题。

好吧,我不知道如何最好地表达我的答案,因为问题实际上很复杂...

场景:
我正在开发一个 python 应用程序,在某个阶段它必须非常快速地尝试使用 urllib 登录 google。正常提交表单不会太难,但是 (很可能) 问题出现了,如果他们的用户已经在这台计算机上登录到 google,然后他们看到的不是普通的文本框,而是他们可以单击以选择帐户的小表格。我会告诉你我的意思。

相反,我想确定出现的是正常的登录页面:

可能的解决方案:(我将如何实施这些) 1) 请求站点时,使用某种 "icongito mode" 就像您在网络浏览器中看到的那样。如果您以 Icongito 模式启动,则 google 不会显示您已登录的帐户。 2) 通过代理,但 google 可能会标记为可疑。

所以,这个 post 很长,但是如果有人能给我一个解决方案那就太好了。总结:我想通过 Python 访问 google 以登录,但我不想 google 显示现有帐户。

编辑: 示例代码:

from bs4 import BeautifulSoup
import requests


form_data={'Email': '****@gmail..com', 'Passwd': '******'}
post = "https://accounts.google.com/"

with requests.Session() as s:
    data = BeautifulSoup(s.get("https://mail.google.com").text)
    for inp in data.select("#gaia_loginform input[name]"):
        if inp["name"] not in form_data:
            form_data[inp["name"]] = inp["value"]
    s.post(post, form_data)
    html = s.get("https://mail.google.com/mail/u/0/#inbox").content

[更新] 如果你还没有找到它,我强烈推荐你看这个:

https://developers.google.com/api-client-library/python/

我建议先花一些时间仔细研究他们自己的 API 文档:

https://developers.google.com/

如果您对 运行 所在的平台有所了解,那么回答您的问题会有所帮助。我怀疑您 运行 没有遇到机器之前登录的问题,而只是因为您没有清除以前登录的 cookie。