ruby – 如何知道Twitter帐户关注者关注最多的帐户?
我需要计算给定帐户的关注者最多的帐户.
我找到了第一个答案,但我有一个很大的限制:friends/ids API的速率限制是每15分钟15个呼叫.每次达到限速时我都可以等,但是,我需要10个小时来分析600个关注者的Twitter账户. require "rubygems" require "twitter" Twitter.configure do |config| config.consumer_key = CONSUMER_KEY config.consumer_secret = CONSUMER_SECRET config.oauth_token = OAUTH_TOKEN config.oauth_token_secret = OAUTH_TOKEN_SECRET end results = Hash.new(0) Twitter.follower_ids(TWITTER_ACCOUNT_TO_ANALYSE).ids.each do |account| Twitter.friend_ids(account).ids.each do |id| results[id] +=1 end end puts results.sort_by {|key,value| value}.inspect 您是否知道更有趣的方法或API来计算?一个近似的答案可以满足我的使用. 编辑: 这是一个管理速率限制的版本,不显示单人纸牌: require "rubygems" require "twitter" Twitter.configure do |config| config.consumer_key = CONSUMER_KEY config.consumer_secret = CONSUMER_SECRET config.oauth_token = OAUTH_TOKEN config.oauth_token_secret = OAUTH_TOKEN_SECRET end results = Hash.new(0) Twitter.follower_ids(TWITTER_ACCOUNT_TO_ANALYSE).ids.each do |account| begin Twitter.friend_ids(account).ids.each do |id| results[id] +=1 end rescue Twitter::Error::TooManyRequests => error #rate limit sleep error.rate_limit.reset_in retry rescue Twitter::Error::Unauthorized => error #protected account next end end puts results.sort_by {|key,value| value}.keep_if {|key,value| value > 1}.inspect 解决方法
我在Twitter API上做了很多工作(尽管使用的是Python而不是Ruby),据我所知,你在这里运气不好 – 这些API的速率限制实在无法解决.
你并不是唯一一个对这种发展感到不满的人.我和许多其他开发人员一直在评论这个问题here – 鉴于Twitter上的人们没有表明这些限制会发生变化,所以可以安全地假设他们会留下来. 除了向第三方数据提供商支付可能已经刮掉所有这些数据之外,你基本上每十五分钟就会遇到15次通话. 另一方面,如果如你所说,你正在寻找一个近似的答案,你可能会采取原始帐户的追随者的(统计上重要的)样本.您没有说明原始帐户有多少关注者,因此我无法告诉您需要抽样的帐户数量,但显然没有理由为所有关注者提供此数据,假设你想要分析的原始帐户有足够多的粉丝. 我想,在紧要关头,你可以使用多个IP地址和Twitter帐户来加快这项工作,但是你需要做大量的基础工作才能做到这一点,并且它违背了精神.如果Twitter的服务条款不是这封信. 我和你在一起 – 对于朋友/粉丝来说,每15分钟有15个电话数据并不好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |