0

私は、Twitter から友人やフォロワーの情報を取得する研究プロジェクトに取り組んでいます。私のような 1,000 人のフォロワーや友達がいるサンプル アカウントで問題なく動作するコードを書きました。しかし、1,220 万人のフォロワーを持つドナルド トランプ アカウントの実行に問題があります。私のプログラムでは、一定の時間レート制限を照会した後、15 分間待ってから再度同じものを要求します。このプロセスは、約 100 万人のユーザー情報に対しては正常に機能しますが、その後スタックするか、URL エラーが発生することがあります。このような大規模なデータを処理する際の問題点と解決策を教えてください。以下の同じコードスニペットを見つけてください-

def get_info_by_screen_name(t, screen_names):

    sn_to_info = {}
    while len(screen_names) > 0:

        # Process 100 ids at a time...

        screen_names_str = ','.join([str(sn) for sn in screen_names[:100]])
        screen_names = screen_names[100:]

        response = make_twitter_request(t,
                                        getattr(getattr(t, "users"), "lookup"),
                                        screen_name=screen_names_str)

        if response is None:
            break

        if type(response) is dict:  # Handle Twitter API quirk
            response = [response]

        for user_info in response:
            sn_to_info[user_info['screen_name']] = user_info

    return sn_to_info


    t = oauth_login()

    friends_ids, followers_ids = get_friends_followers_ids(t,
                                                           screen_name="realDonaldTrump",
                                                           friends_limit=100,
                                                           followers_limit=100)

    # Basic usage...


    print friends_ids
    print followers_ids
    # Basic usage...
    info = {}
    data_test = {}
    info.update(get_info_by_id(t, friends_ids))
4

0 に答える 0