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