加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 21:42:36 所属栏目:Python 来源:网络整理
导读:我正在创建一个网站,其中列出了群组中的人数(来自www.codecamy.com). 为实现这一目标,我提出了一个计划. 我将有一个服务器,它将每30秒轮询一次CodeCademy组页面(http://www.codecademy.com/groups),并从该HTML中检索所需的信息. 然后,当客户端连接到我的网站

我正在创建一个网站,其中列出了群组中的人数(来自www.codecamy.com).

为实现这一目标,我提出了一个计划.

我将有一个服务器,它将每30秒轮询一次CodeCademy组页面(http://www.codecademy.com/groups),并从该HTML中检索所需的信息.

然后,当客户端连接到我的网站时,服务器将向客户端提供该信息,然后客户端将使用http://www.chartjs.org/docs/或http://www.jqplot.com/基于该信息绘制图形.

但是,存在一个很大的问题.如果您点击了CodeCademy的任何链接,那么您意识到您需要有一个帐户才能真正看到该网站.这可以是Facebook帐户,谷歌帐户或推特帐户.

所以,简短的故事,如果我想访问包含有关组的信息的页面,我需要为我的服务器设置一个Bot帐户,我需要教我的服务器登录该帐户.

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

通过跟随quickstart python tutorial that connects me to google+我现在也有代码与它进行交互.

然而,尽管如此,我仍然没有关于如何与网站互动的最小想法.我有以下问题:

>如何检测我是否登录了我的Google帐户?
>如何将自己连接到该帐户,以便我可以访问该页面?
>登录该网站是否有特殊链接?

我很失落,并希望得到任何可能的帮助.

最佳答案
不要让所有的代码示例和howto导致你误入歧途.它们适用于更复杂的情况.

>这不是oauth2授权,它的oauth2认证
>您不是具有clientID和秘密的客户端. Codecademy是具有clientID和秘密的客户端.您的codecademybot帐户只是用户.

这意味着您只需要在登录codecademy时自动执行普通用户的操作.使用开发工具(IE开发工具,FireBug,无论如何)在浏览器中播放几次交互,并查看HTTP请求的对话.

这是您希望效仿的内容.

从我所看到的,

>通过向http://codecademy.com/auth/google_oauth2发送请求开始对话.
>该请求将转发到谷歌的https网址
>如果我以前在谷歌登录,会发送几个cookie,然后我会通过身份验证.该请求将在http://www.codecademy.com/auth/google_oauth2/callback发送回codecademy redirect_url,并以oauth2身份验证代码作为参数.
>据说是codecademy和谷歌聊天,这需要大约三秒钟.
>他们同意我是我,在我转发到http://www.codecademy.com/之前,我的浏览器中设置了两个cookie(remember_user_token和_session_id)

我认为最后一点很有趣.如何使用浏览器手动登录,收听对话并将这两个cookie复制到自动代码中.看看它们是否足以作为身份验证令牌,并允许您从网站获取数据.

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

还有一件事,当我浏览网站时,我看到一个REST api请求,即http://www.codecademy.com/api/v1/notifications/userid / unread_count?authentication_token = some token

冲浪到http://www.codecademy.com/api/v1/users/userid /?authentication_token =令牌
给了我更多关于我自己的信息

http://www.codecademy.com/api/v1/users/userid / groups?authentication_token =令牌给我我所在的组.

如果您有关于codecademy REST api的更多文档,您可以尝试从那里获取它.我找不到任何文件,正在进行中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读