加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何知道Twitter帐户关注者关注最多的帐户?

发布时间:2020-12-17 02:03:22 所属栏目:百科 来源:网络整理
导读:我需要计算给定帐户的关注者最多的帐户. 我找到了第一个答案,但我有一个很大的限制:friends/ids API的速率限制是每15分钟15个呼叫.每次达到限速时我都可以等,但是,我需要10个小时来分析600个关注者的Twitter账户. require "rubygems"require "twitter"Twitt
我需要计算给定帐户的关注者最多的帐户.

我找到了第一个答案,但我有一个很大的限制: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个电话数据并不好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读