代码之家  ›  专栏  ›  技术社区  ›  Michael

更快地从Tweepy API获取关注者/朋友的ID

  •  0
  • Michael  · 技术社区  · 6 年前

    我正在做一个项目,在这个项目中,我需要知道大约1000个用户的网络中每个用户的follower id和friend id。我已经编写了一个这样做的代码,但是每次我达到可怕的速率限制,每次都要等待15分钟,这将导致16小时的数据收集。

    代码如下:

    auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
    api = API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
    
    def get_r(api, usr_ids):
        usr_ids.sort()
    
        followers = []
        friends = []
        for idx, usr_id in enumerate(usr_ids):
    
            followers_arr = np.array(api.followers_ids(user_id=usr_id), dtype=np.int64)
            friends_arr = np.array(api.friends_ids(user_id=usr_id), dtype=np.int64)
    
            followers.append(followers_arr)
            friends.append(friends_arr)
    
        return followers, friends
    uids = [  742143,   759251,   807095,   813286,  1652541,  1917731,
        2768501,  4970411,  5526692,  8628872,  8802752, 11134252,
       12321952, 12701412, 14780430, 15446551, 15593696, 15606092,
       15745368, 15764644, 15846407, 16260333, 16602052, 17469289,
       17494010, 17506128, 17805878, 18082945, 18465455, 18956073,
       19211550, 19739126, 19750159, 20003409, 20015311, 20545055,
       20926233, 22873328, 24514768, 25073877, 25596707, 25974425,
       26642006, 27493883, 28381177]
    get_r(api=api, usr_ids=uids )
    
    0 回复  |  直到 6 年前