通过使用Python登录Google帐户进入网站

通过使用Python登录Google帐户进入网站,python,login,oauth-2.0,google-account,Python,Login,Oauth 2.0,Google Account,我正在制作一个网站,它可以绘制分组人数的图表(来自www.codecamy.com) 为了实现这一目标,我制定了一个计划 我将有一个服务器,它将每隔30秒轮询CodeCademy groups页面(),并从该HTML中检索所需的信息 然后,当客户端连接到我的网站时,服务器将向客户端提供该信息,然后客户端将使用或根据该信息绘制图形 然而,有一个大问题。如果您单击了CodeCademy中的任何链接,那么您就会意识到需要有一个帐户才能真正查看该网站。这可以是facebook帐户、google帐户或

我正在制作一个网站,它可以绘制分组人数的图表(来自www.codecamy.com)

为了实现这一目标,我制定了一个计划

我将有一个服务器,它将每隔30秒轮询CodeCademy groups页面(),并从该HTML中检索所需的信息

然后,当客户端连接到我的网站时,服务器将向客户端提供该信息,然后客户端将使用或根据该信息绘制图形

然而,有一个大问题。如果您单击了CodeCademy中的任何链接,那么您就会意识到需要有一个帐户才能真正查看该网站。这可以是facebook帐户、google帐户或twitter帐户

所以,简而言之,如果我想访问包含组信息的页面,我需要为我的服务器设置一个Bot帐户,并且我需要教我的服务器登录该帐户

因此,我在gmail上创建了一个名为codecademybot的虚拟帐户,我希望我的服务器使用该帐户登录到codecademy,以便它可以看到该页面的内容

通过遵循a,我现在也有了与之交互的代码

然而,尽管如此,我仍然不知道如何与网站互动。我有以下问题:

  • 如何检测我是否登录了谷歌帐户
  • 如何将自己连接到该帐户,以便访问该页面
  • 是否有一个特殊的链接登录到该网站

  • 我完全迷路了,如果有任何可能的帮助,我将不胜感激。

    不要让所有的代码示例和howto’s将您引入歧途。它们适用于更复杂的情况

    • 这不是oauth2授权,而是oauth2身份验证
    • 你不是客户ID和秘密的客户。Codecademy是拥有客户ID和秘密的客户。您的codecademybot帐户就是用户
    这意味着您只需要自动完成普通用户登录codecademy时的操作。在浏览器中使用一个开发工具(即开发工具、FireBug等)进行几次交互,然后查看HTTP请求的对话

    这是您希望效仿的

    据我所见

    • 对话以向发送请求开始
    • 请求被转发到谷歌的https url
    • 如果我以前登录过谷歌,就会发送一些cookies,我也会得到认证。请求被发送回codecademy redirect_url,地址为,oauth2身份验证代码作为参数
    • 应该是codecademy和谷歌聊天,因为这大约需要三秒钟
    • 他们同意我就是我,在我被转发到之前,在我的浏览器中设置两个cookie(
      记住用户令牌
      \u会话id
    我认为最后一点很有趣。您可以使用浏览器手动登录,监听对话并将这两个cookie复制到您的自动代码中。查看它们是否足以作为身份验证令牌,并允许您从网站获取数据

    如果没有,那么我热烈推荐@CrisBee21的答案。希望pyCurl能够很好地模拟浏览器,为您进行对话

    还有一件事,当我浏览站点时,我看到一个RESTAPI请求,即userid/unread\u count?authentication\u token=some token

    浏览到userid/?身份验证\令牌=令牌 给我更多关于我自己的信息

    userid/groups?authentication\u token=该token提供我所在的组


    如果您有更多关于codecademyrestapi的文档,您可以尝试从那里学习。我找不到任何文档,我在继续写这篇文章。

    这可能会有帮助,我去过那里,但我觉得完全迷路了!!!这是一堆信息,但没有任何东西能帮助我实现我的目标:这可能是。。答案部分我不使用Django,但我一定会查看这些信息!关于您编写的代码问题的问题必须在问题本身中描述具体问题,并包括复制问题的有效代码。是的,我也知道这个链接,我也发现了它。。。但是我该如何模仿上述行为呢?我已经听了对话并添加了我的想法。我看到了两个有趣的cookies,它们可能正好起到了作用。我很难理解这一点,所以我现在正在尝试另一种方法:是的,从我所看到的,pycurl处理cookies,但我仍在试图弄清楚一切是如何工作的:S