我完成了更新我們在 Neutron的實時收入統計。在我花了一周的時間完成并且更新了我們的PHP腳本之后,我最終認決定開始使用Python進行抓取,這是值得我去花費我的時間和精力的事情。我建立了一個 Django程序,它可以從不同的來源存儲收入統計,我可以用這些去簡歷視圖和用于統計工具的API。
所以在過去的幾天里,我寫了一個腳本,它可以登入到其他的網頁并抓取數據,或者,如果這些網頁有 API,可以直接訪問 API。我發現了一些事情。
1.requests >httplib2(requests多于httplib2);
2.SOAP很糟糕,但它至少是一個API,Suds使SOAP好一點。我了解到SOAP是我說知道的API中,唯一一個完全基于.net開發的。
3.Beautiful Soup是一個很好的求助對象;
4.我確實十分驚訝,這么多企業能在如此蹩腳的技術中生存下來。
我拯救了 Google Adsense,他們將會擁有最好的API,并且因此成為最簡單的實現。他有著比我預想的要多的挑戰。顯然你無法僅僅插入用戶名/密碼或是APIkey去獲取獲得進入API的入口,你必須完成整個Oauth2的握手流程。
不幸的是,我發現文檔不如我希望過得那樣容易查詢。我發現了很多死鏈接。我認為,在這方面Google的人應該做的更好。例如,在他們的up to date developer docs文檔中,我發現他們指出了broken link to read more about authentication and authorization。(好的,多么奇怪,我盡快提交了這個問題,這個鏈接終于開始工作了,我猜你會感謝我。)
所以,這篇博客將嘗試記錄從Adsense獲取報表到我的Django應用的過程。
為了使用Google的API來訪問Adsense報表,你需要使用Adsense Management API. 這個API只提供OAuth,所以你需要在瀏覽器中至少完成一次認證過程,來獲取你的證書,然后你可以保存這些證書來進行下一步操作。說實話,我已經聽說過OAuth很多次了,但是直到現在,我在實踐中仍沒有需要來使用它。所以我是邊做邊學,并歡迎大家留言指出我說的不對的地方。
就我所知,Google對于它的各種產品都擁有一個龐大的API。在研究Adsense之前,你需要在Google API 控制臺注冊你的應用。我已經成功注冊了我的應用。因為我還沒有一個可用的URL地址,我現在暫時使用我的開發URL(localhost:8000)。它運作起來似乎正常。并使用提供的這個鏈接下載JSON文件。
還有,當你管理你的APIs的時候,你需要打開服務選項卡,打開AdSense Management API選項。否則,當你嘗試發送請求的時候,你會得到一個錯誤消息“Access Not Configured”。
Google已經創建了一個Python 客戶端庫,你可以輕易的通過pip來安裝這個庫。它還包含一個Django樣例項目,這個項目使用這個庫實現OAuth2的握手過程。我想,它是使用Django 1.1編寫的(因為在寫這個項目的時候,Django 1.5才剛剛發布),所以它可能有點過時,但是它可是一個好的開始點。
新聞熱點
疑難解答