2013-11-24 104 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 –