更快的推特 ID 流
Faster twitter ID stream
我的项目是从推特上下载大量的ID-s。
也称为,普通用户的关注者数量很少(100-200)。
我使用 Twython 包进行流式传输,这是我程序的主要部分:
while(next_cursor):
follower_id=twitter.get_followers_ids(user_id=ids,cursor=next_cursor)
time.sleep(60)
next_cursor=follower_id['next_cursor']
这是一个非常简单的 cod,也可以工作,但对于大量 ID-s 来说真的很慢,因为函数 tw.get_follower_id()-s 速率限制为 5000 id/minute,这就是为什么时间睡眠功能在代码中的原因。
我的问题是,是否有可能加快这段代码的速度?
也许这样程序就不会在每次查询后暂停,只有在真正需要时才暂停。
有人可以帮忙吗?
Twitter 在随每个 API 响应发送的 headers 中提供 rate-limit 信息。所以你可以检查一下,然后以允许的最大速率调用。您还可以通过特定的 rate-limit API 调用从 Twitter 请求您的 rate-limit 状态,这不会减少要检查的 rate-limit。我自己不使用 Twython,所以我无法就如何在 Twython 中使用它提出建议。
它不会给你带来太多额外收益 -- 可能只有几个 %。
或者,偶尔碰到 rate-limit 也没什么坏处——您会收到一条错误消息。只要不是太频繁,推特不会介意的。
基本 rate-limit 速度上限 - 没有办法解决这个问题。也许 Gnip 有付费服务可以让您更快地下载这些数据?
我的项目是从推特上下载大量的ID-s。 也称为,普通用户的关注者数量很少(100-200)。 我使用 Twython 包进行流式传输,这是我程序的主要部分:
while(next_cursor):
follower_id=twitter.get_followers_ids(user_id=ids,cursor=next_cursor)
time.sleep(60)
next_cursor=follower_id['next_cursor']
这是一个非常简单的 cod,也可以工作,但对于大量 ID-s 来说真的很慢,因为函数 tw.get_follower_id()-s 速率限制为 5000 id/minute,这就是为什么时间睡眠功能在代码中的原因。
我的问题是,是否有可能加快这段代码的速度?
也许这样程序就不会在每次查询后暂停,只有在真正需要时才暂停。 有人可以帮忙吗?
Twitter 在随每个 API 响应发送的 headers 中提供 rate-limit 信息。所以你可以检查一下,然后以允许的最大速率调用。您还可以通过特定的 rate-limit API 调用从 Twitter 请求您的 rate-limit 状态,这不会减少要检查的 rate-limit。我自己不使用 Twython,所以我无法就如何在 Twython 中使用它提出建议。
它不会给你带来太多额外收益 -- 可能只有几个 %。
或者,偶尔碰到 rate-limit 也没什么坏处——您会收到一条错误消息。只要不是太频繁,推特不会介意的。
基本 rate-limit 速度上限 - 没有办法解决这个问题。也许 Gnip 有付费服务可以让您更快地下载这些数据?