【问题标题】:Maximizing Twitter's rate limit to log followers最大化 Twitter 记录关注者的速率限制
【发布时间】:2015-05-29 18:06:17
【问题描述】:

Twitter API 的速率限制为每 15 分钟 15 个请求。

我正在尝试使用 python 运行并编译我的关注者列表,但由于某种原因,当仅记录 300 个关注者时,速率限制达到最大值。我读到最大值应该接近 5,000。我哪里错了?

如果我有数千甚至超过 100 万的追随者,并且我正在尝试打印 每个 追随者的列表,我如何在达到速度之前最大化 Python/twitter 返回的追随者数量限制?

这是我目前的代码:

followers = tweepy.Cursor(client.followers, id=screenName)
for follower in followers.items():
    info=[]
    name =follower.name
    screen_name = follower.screen_name

    userId = userId + 1

    info.append(userId)
    info.append(name)
    info.append(screen_name)

    csvFile = open('followers.csv','a')
    newFile =csv.writer(csvFile) #imported csv
    newFile.writerow(info)
    #close file
    csvFile.close()

【问题讨论】:

    标签: python twitter social-networking rate-limiting


    【解决方案1】:

    当你在tweepy 中访问client.followers 时,你实际上是在执行这个推特请求GET followers list。在此请求中,您有两个限制:

    (1) 每 15 分钟窗口的请求数:

    请求/15 分钟窗口(用户身份验证)15

    请求数/15 分钟窗口(应用身份验证)30

    (2) 每次请求可以获得的关注者数量,见参数count

    每页返回的用户数,最多 200 个。默认为 20 个。

    因此,举个例子,假设所有用户有 200 个关注者,您可以在 15 分钟的窗口中获得 15 个用户的关注者,您总共会获得 3000 个关注者。另一个例子,如果一个用户有 3000 个关注者,你需要 15 个请求来获取所有关注者,然后你会使用完整的 15 分钟窗口。 (我假设您使用用户身份验证)。

    另一方面,如果您的用户只有 1 个关注者,您将在每 15 分钟窗口获得 15 个关注者。

    你提到的数字 5000 是另一个 Twitter 请求 GET followers ids,在 tweepy 中是 client.followers_ids。在这一个中,您不会获得用户的完整信息,只有 id,但速率限制不那么严格:

    (1) 每 15 分钟窗口的请求数:

    请求/15 分钟窗口(用户身份验证)15

    请求数/15 分钟窗口(应用身份验证)15

    (2) 每次请求可以获得的follower id数量,见参数count

    指定尝试检索的 ID 数量,每个不同请求最多 5,000 个。

    因此,通过此请求,您可以在每个窗口中获得多达 15*5000 = 75000 个关注者(但是,我坚持认为,只有 id)。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      相关资源
      最近更新 更多