【问题标题】:Tweepy lookup_user for large list of user_id用于 user_id 的大型列表的 Tweepy lookup_user
【发布时间】:2018-01-08 01:30:49
【问题描述】:

我想使用带有 Tweepy 库 (python 2.7) 的 twitter 的关注者 ID 的大列表(超过 100k)来获取用户数据。下面是我的代码:

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 列表以获取相应的用户数据?

【问题讨论】:

    标签: python twitter tweepy


    【解决方案1】:

    如果您遇到同样的问题,请在尝试之前添加“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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      相关资源
      最近更新 更多