2017-08-01 4 views
0

Tweepyライブラリ(python 2.7)を使用してtwitterからフォロワーIDの大きなリスト(100k以上)を使用してユーザーデータを取得したいと思います。以下は私のコードです:機能の大きいリストfor user_idのためのTweepy lookup_user

def lookup_user_list(followers_id, api): 
    full_users = [] 
    users_count = len(followers_id) 
    try: 
     for i in range((users_count/100) + 1): 
      full_users.extend(api.lookup_users(user_ids=followers_id[i*100:min((i+1)*100, users_count)])) 
      print 'getting users batch:', i 

    except tweepy.TweepError as e: 
      print 'Something went wrong, quitting...', e 
      time.sleep(15 * 60) 

    return full_users 

APIの引数には、消費者のキー、コンシューマシークレット、アクセストークンとアクセス秘密とTweepy認証のセットアップと設定されて。

私はそうのようにこれを実行すると:

results = lookup_user_list(followers_id, api) 

ユーザデータの448バッチを取得した後、私は次のエラーを取得:

Something went wrong, quitting... Failed to send request: HTTPSConnectionPool(host='api.twitter.com', port=443): Read timed out. 

このエラーや反復を修正する方法がありますIDの完全なリストを介して対応するユーザーデータを取得する?

答えて

0

同じ問題が発生した場合は、「While True:」を追加する前に:私のコードでこの問題を解決しました。

def lookup_user_list(followers_id, api): 
    full_users = [] 
    users_count = len(followers_id) 
    while True: 
     try: 
      for i in range((users_count/100) + 1): 
      full_users.extend(api.lookup_users(user_ids=followers_id[i*100:min((i+1)*100, users_count)])) 
      print 'getting users batch:', i 
     except tweepy.TweepError as e: 
      print 'Something went wrong, quitting...', e 
      time.sleep(15 * 60) 
     return full_users 
関連する問題