2012-01-27 17 views
3

私はWebプログラミングの新機能です。 PythonでFoursquareのソーシャルグラフをクロールするためのクローラを作成したいと思います。 私はapiv2ライブラリを使って "手動で"制御されたクローラを持っています。主な方法があるように:oauth2を使用してWebサイト用のPythonクローラを構築する方法

def main(): 
    CODE = "******" 
    url = "https://foursquare.com/oauth2/authenticate?client_id=****&response_type=code&redirect_uri=****" 
    key = "***" 
    secret = "****" 
    re_uri = "***" 

    auth = apiv2.FSAuthenticator(key, secret, re_uri) 
    auth.set_token(code)  
    finder = apiv2.UserFinder(auth)   

    #DO SOME REQUIRES By USING THE FINDER 
    finder.finde(ANY_USER_ID).mayorships() 
    bla bla bla 

問題現時点では、私は私のブラウザにURLを入力し、リダイレクトURLからコードをピックアップし、その後、私のプログラムのコードを更新する必要があり、実行することですもう一度。 CODEを現在のプログラムに進めて、それを自動化できる方法がいくつかあると思います。

任意の命令またはサンプルコードが理解されます。

答えて

1

あなたはpython-oauth2モジュールをチェックアウトする必要があります。それはそこで最も安定しているようだ。

特に、this blog postは、PythonでOauthを簡単に実行する方法が本当にうまくいっています。サンプルコードではFoursquare APIを使用していますので、最初にチェックします。

私は最近、OAuthのはDropboxが、OAuthの交換を行うために必要なステップを含むand wrote this moduleで作業をしなければなりませんでした。私のシステムでは

、私は考えることができ、最も簡単なものは、OAuthクライアントをpickleすることでした。私のブログのパッケージには、ちょうど漬けクライアントをデシリアライズさと、以下の機能をエンドポイントを要請:

get = lambda x: client.request(x, 'GET')[1] 

は、念のあなたの労働者は、このクライアントオブジェクトを持っているとあなたはあなたがいない

+1

にオープナーについての詳細をお読み、ご静聴ありがとうございます。私はブログでは、 "コード"は撮影には必要ないと思われるという質問があります。本当?私のライブラリで、コードはトークンにアクセスするための必須パラメータです。私はちょうど私のコード部分を更新します。質問をより明確にすることを願っています。 – user1056824

+0

あなたのコードを正しく読んでいるなら、あなたのプログラムの 'CODE'変数は必要ありません。それはPython-Oauth2によって処理されます。 – mvanveen

+0

私はそれを試してみましょう。ありがとうございました。 :) – user1056824

0

:-)行くために良いことがあります毎回それをしなければならない。彼らはあなたにX時間/日に良いtokenを与えます。最終的に、あなたは403 HTTPコードを取得します、あなたは再認証

+0

私は 'bla bla bla'の部分、autu.set_token(CODE)のようなもので、承認を得るためにトークンを取得します。しかし、各トークンがサーバーを要求するための制限があります。ユーザーの関係や会場をクロールしたい20人のユーザーのようにクロールした後、トークンが期限切れになり、新しいトークンを適用する必要があるという要求が多く発生しているようです。トークンを取得するためには「コード」が必要なので、個人アカウントを使用して承認を取得する必要があります。それは私が自動的に変換しようとする部分です。あるいは、「コード」とトークンなしでデータをクロールできる他の方法があるのだろうかと思います。 – user1056824

1

は、あなたのアプリが最初のOAuth2で認証取得する必要があります。 これはtwitter認証にoauthを使用する方法の例です。 http://popdevelop.com/2010/07/an-example-on-how-to-use-oauth-and-python-to-connect-to-twitter/

同様に、あなたは、あなたは、HTMLの解析のためにBeautifulSoupまたはlxmlのを使用することができますhttps://code.google.com

で、より多くの例を見つけることができます。リクエストが完了した後に取得する関連するデータをページソースから抽出することができます。

BeautifulSoupドキュメンテーション - http://www.crummy.com/software/BeautifulSoup/

あなたがオープナーを使用することができ、画像、動画などをダウンロードします。 http://docs.python.org/library/urllib2.html

関連する問題