首页 > 解决方案 > 如何使用 Tweepy/TwitterAPI 获取用户朋友的朋友,而不会给速率限制带来太多负担?

问题描述

我正在使用 tweepy API,并且我创建了一个方法来获取用户的关注者(又名朋友)。

    def get_following(self, name=''):
        client = self.twitter_client
        following_results = tweepy.Cursor(client.friends, screen_name=name, count=200).pages()
        i = 0
        # Each page returns a list of what you requested (in this case: users).
        for list_of_users in following_results:
            for user in list_of_users:
                 # do something with the user

我正在尝试构建一个简单的程序,该程序将获得用户朋友的朋友。

输入用户->检索该用户的朋友->为输入用户的每个朋友获取他们的朋友列表(最终目标)。

编写逻辑来获取这些数据不是问题。

我对速率限制有一个大问题。对于您输入该方法的第一个用户,这很好。我在一个有 500 个朋友并使用 tweepy rate_limit_status() 的用户上测试了上面的方法,对朋友的 15 个请求按预期减少了 3 到 12 个请求(最大计数为 200,所以分页次数为 3 次),但以该速率,假设该用户的下四个朋友也有 500 个关注者,我每 15 分钟只能请求五个用户(包括第一次迭代中输入的用户)。因此,假设该用户的每个朋友也有 500 个朋友(可能更多),需要一百个(5 个请求/15 分钟会话 * 100 = 原始用户的所有 500 个朋友)15 分钟会话才能获得所有朋友原始用户的朋友(25 小时)。

时间长了,我查了 Stack overflow 和 tweepy/twitter API 文档来解决这个困境,还没有真正找到任何东西,所以我不妨在这里问一下。我试图使它成为一个易于使用的程序,其中任何用户名都可以输入,并且我得到用户朋友的朋友的输出,但这对于单个用户来说已经是一个时间上的挑战。

这甚至可能与当前 15 个好友请求/15 分钟的 Twitter 速率限制,或者有没有办法解决这个问题?

谢谢。

标签: tweepyrate-limitingtwitterapi-python

解决方案


推荐阅读