私は、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))