【问题标题】:tweepy count limited to 200?tweepy 计数限制为 200?
【发布时间】:2014-06-21 01:14:24
【问题描述】:

我目前正在尝试检索一些有很多关注者的大帐户的关注者。

我正在使用 Tweepy 和这段代码(带光标):

follower_cursors = tweepy.Cursor(api.followers, id = id_var,count=5000)
            for friend in follower_cursors.items():

好吧,如果我不指定计数,似乎默认情况下每页只显示 20 个结果,但从 Twitter API 文档来看,它可以提供 5000 个关注者,我试图将其设置为最大值。

然而,这似乎没有被考虑在内,每个页面最多包含 200 个条目,这是一个真正的问题,因为您将更容易触发速率限制。

我做错了什么?有没有办法让 Tweepy 请求 5000 个 ID 的页面,以最小化请求并覆盖这个默认的最大值 200?

谢谢!

【问题讨论】:

    标签: python twitter tweepy


    【解决方案1】:

    您可以使用cursor for pages 代替items,然后处理每页的项目:

    for page in Cursor(api.user_timeline).pages():
        # page is a list of statuses
        process_page(page)
    
        # or iterate over items in `page`
    

    我在tweepy Cursor 中没有看到返回结果的限制,因此它应该返回尽可能多的结果。


    上一个答案:

    每页最大结果由 Twitter API 强制执行,而不是由 tweepy 强制执行。 您应该对每次通话 200 个结果的列表进行分页,Cursor 已经为您做这件事。如果有 5000 个关注者,那么每个查询最多 200 个结果,您只使用 25 个调用。你还有 4975 个电话可以做其他事情。

    要超过每小时 5000 次的速率限制,您需要每分钟至少进行 83 次调用或每秒 1.4 次调用。

    请注意,“读取限制”是针对每个应用程序的,而“写入限制”是针对每个用户的。因此,如果它们是阅读密集型应用,您可以将任务分配给两个或多个应用*

    如果更适合您的需求,请考虑改用 Streaming API

    *:虽然我确信 Twitter 有适当的控制措施来防止滥用。

    【讨论】:

    • 是的,但是如果您检查此页面:dev.twitter.com/docs/api/1.1/get/followers/ids 您可以将计数值设置为 5000,这意味着每个页面将包含 5000 个结果而不是 200。然后您将使用光标请求附加页面有 5000 个请求。目前,无论我提供的页面的值是否包含最多 200 个 ID,而不是 5000,因为 Twitter 会为我提供 count=5000。不幸的是,流 API 不提供关注者 ID,而只提供关注者总数。
    • 好的,我找到了问题! Followers() 函数使用限制为 200 个 ID 的关注者/列表端点。我必须使用使用 follower/ids 端点的 follower_ids()。但是,Tweepy 中存在一个错误,因为不允许使用 count 参数。我不得不添加它。谢谢!
    • 可能会提出问题并将您的补丁提交给Tweepy on github
    猜你喜欢
    • 2018-03-25
    • 2015-08-23
    • 2015-02-17
    • 2017-08-11
    • 2022-08-19
    • 2017-07-16
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多