2013-11-24 103 views
5

我正在制作一个网站,用于显示组中人数的图表(来自www.codecamy.com)。通过使用Python登录Google帐户来输入网站

为了达到这个目标,我带了一个计划。

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

enter image description here

然后,当客户端连接到我的网站,服务器会给客户端信息,然后客户端将使用两种http://www.chartjs.org/docs/http://www.jqplot.com/绘制基于这些信息的图表。

enter image description here

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

enter image description here

所以,短篇小说,如果我想和有关团体的信息访问的页面,我需要为我的服务器由外挂账号,我要教我的服务器登录到该帐户。

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

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

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

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

我很迷茫,并会感谢任何可能的帮助。

+1

https://developers.google.com/api-client-library/python/guide/aaa_oauth这可能有帮助 –

+0

我一直在那里,但我感觉完全失去了!这是一堆信息,但没有什么可以帮助我实现我的目标:S –

+1

http://stackoverflow.com/questions/10271110/python-oauth2-login-with-google这可以是..答案部分 –

回答

4

不要让所有的代码示例和howto引导你误入歧途。它们适用于更复杂的情况。

  • 这不是的oauth2授权,它的oauth2认证
  • 你不ClientID的和秘密的客户端。 Codecademy是具有clientID和秘密的客户端。你的codecademybot帐户只是用户。

这意味着您只需要在登录到codecademy时自动执行普通用户的操作。在浏览器中使用开发工具(IE开发工具,FireBug,无论什么)监听多次交互,并查看HTTP请求的对话。

这就是你想要效仿的。

从我所看到的,

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

如果不是,那么我热烈推荐@ CrisBee21的答案。让我们希望pyCurl能够很好地模拟浏览器来为你做对话。

还有一件事,当我浏览网站的时候,我看到一个REST API请求,即http://www.codecademy.com/api/v1/notifications/用户ID/UNREAD_COUNT?authentication_token = 一些象征性的

冲浪到http://www.codecademy.com/api/v1/users/用户ID /?authentication_token = 令牌 给了我关于我自己的详细信息

http://www.codecademy.com/api/v1/users/用户ID/groups?authentication_token = 令牌为我提供了我所在的群组。

如果您有更多关于codecademy REST API的文档,您可以尝试从此处获取。我无法找到任何文档,因为我一直在做这件事。

+0

是的,我也知道这个链接,我也发现它......但我怎么模仿这种说法呢? –

+0

我聆听了对话并添加了我的想法。我看到两个可能只是做窍门的感兴趣的曲奇。 – flup

+0

我有真正的麻烦理解这一点,所以我现在尝试另一种方法:http://stackoverflow.com/questions/20270106/how-to-login-to-codecademy-using-pycurl 是的,从我什么可以看到,pycurl处理cookies,但我仍然试图弄清楚一切是如何工作的:S –