【问题标题】:How to know the most followed accounts by the followers of a Twitter account?如何知道 Twitter 帐户的关注者最关注的帐户?
【发布时间】:2012-11-11 14:35:51
【问题描述】:

我需要计算给定帐户的关注者最关注的帐户

我找到了第一个答案,但我有一个很大的限制: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 问题,而不是 Ruby Twitter API

标签: ruby twitter


【解决方案1】:

我使用 Twitter API(尽管使用 Python 而不是 Ruby)做得很好,据我所知,你在这里运气不好——对于 API 的这些速率限制真的没有办法。

您不是唯一对这一发展感到不满的人。我和许多其他开发人员都对这个问题发表了评论 here —— 鉴于 Twitter 上的人没有表示这些限制会改变,假设它们会继续存在可能是安全的。

除了向可能会抓取所有这些数据的第三方数据提供商付费外,您基本上会被每 15 分钟 15 次调用所困。

另一方面,如果如您所说,您正在寻找一个近似答案,您可能会从原始帐户的关注者中抽取一个(具有统计意义的)样本而侥幸。您没有说明原始帐户有多少追随者,所以我无法告诉您需要抽样的帐户数量,但显然没有理由为所有追随者提取此数据,假设您要分析的原始帐户有足够多的关注者。

我想,在紧要关头,您也许可以使用多个 IP 地址和 Twitter 帐户来加快这项工作,但是您必须做大量的基础工作才能做到这一点,而且它与如果不是 Twitter 的服务条款,那么就是精神。

不过,我支持你 -- 每 15 分钟 15 次调用朋友/关注者数据并不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 2011-10-13
    • 2021-04-14
    • 1970-01-01
    • 2013-04-08
    • 2021-01-23
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多