我试图根据Twitter上关于一个名为Maybelline的品牌的推文数量找到最多的粉丝.该品牌拥有约600,000粉丝,当我尝试检索它们时,代码会持续运行数小时.那么有一种有效的方法吗?我在设置twitter身份验证后使用以下代码.我想要所有关于美宝莲的推文最多的粉丝(前50名).
user<-getUser('Maybelline')
user$toDataFrame()
followers<-user$getFollowers()
Run Code Online (Sandbox Code Playgroud)
谢谢
在使用Twitter API时,熟悉它们的限制很有用.您对GET请求有两个主要限制,一个是速率限制(您可以在15分钟的时间范围内发出多少请求),另一个是特定呼叫为您提供的结果数量限制.
在您的方案中,您正在使用GET followers/list其API中的端点.你可以在这里阅读文档.该端点返回关注者列表,每个请求限制为20个关注者,每15分钟限制15个请求,这意味着在15分钟的时间范围内,您只能检索15*20 = 300用户.因此要检索需要很长时间的600K粉丝(30K分钟= 500小时= ~21天).
使用GET followers/id每个请求返回最多5K用户ID 会更有效,每15分钟速率限制使用相同的15个请求.这里有 Twitter API参考.您可以将其与Twitter结合使用,GET users/lookup每次请求最多可返回100个用户,并且每15分钟的速率限制为900个请求.这意味着需要2个小时(每15分钟增加75K用户)才能获得600K粉丝ID.并且不到2小时就能获得用户对象(每15分钟90K用户).
速率限制可能会根据您使用的包的身份验证方式而有所变化.如果您使用凭据以Twitter用户身份登录,则上述速率限制是正确的.如果您仅使用应用程序凭据,那么获取关注者将花费3倍的时间,因为users/lookup在这种情况下,速率限制为300个请求,或者每15分钟30K个用户. 这个答案有一些关于速率限制的好信息.