【问题标题】:how to get 150k followersIDs from User?如何从用户那里获得 15 万个粉丝 ID?
【发布时间】:2012-05-19 00:04:28
【问题描述】:

我正在尝试从一个拥有大约 150.000 个关注者的 Twitter 帐户获取所有关注者 ID。后来我想映射他们的位置,但首先我需要所有这些 ID。

目前我正在使用此代码:

long lCursorIDs = -1;
    long[] fArray = new long[100];

    do
    {               
        fArray = twitter.getFollowersIDs(name, lCursorIDs).getIDs();            
    } while (twitter.getFollowersIDs(name, lCursorIDs).hasNext ()); 

    try
    {
        PrintWriter pr = new PrintWriter(filenameOutput);    

        for (int i=0; i<fArray.length ; i++)
        {
            pr.println(fArray[i]);
        }
        pr.close();
        System.out.println("Follower IDs collected and saved to file: " + filenameOutput );
    }
    catch (Exception e)
    {
        e.printStackTrace();
        System.out.println("No such file exists.");
    }

这适用于关注者较少的用户。但是有那么多它总是返回一条错误消息 - 超出速率限制。 我正在考虑每小时只获得一定数量的追随者ID,但我不确定如何做到这一点,而不是从第一个追随者开始每小时开始。另外,我不确定一个请求可以获得多少关注者。也许它是 100,与“lookupUser”方法一样,但我不确定.. 有什么想法/建议吗?

编辑:好的,我只是尝试获取一个拥有 2700 个关注者的帐户的关注者 ID,并将它们正确存储在文本文件中。它也只“花费”了一个请求。比我将帐户名称更改为拥有 15500 个关注者的帐户,它再次崩溃并显示超出速率限制的消息。我不明白为什么,因为它只有大约 6 倍的追随者,但所有剩余的请求都被花费了。关于我做错了什么有什么想法吗?

【问题讨论】:

    标签: java twitter twitter4j


    【解决方案1】:

    答案:

     int numberOfFollowers; 
        numberOfFollowers = user.getFollowersCount(); 
    
                //CREATE ARRAYS FOR FOLLOWER IDS
        long cursor = -1;
        long[] fArray = new long[numberOfFollowers];
        long[] local = new long[5000];
    
    
        IDs ids = twitter.getFollowersIDs(name, cursor);
        int j = 0;
    
                int x = 5000;
        int durchgang = 1;
        int d_anzahl = 1 + numberOfFollowers / 5000;
        //STROE FOLLOWER IDS IN ARRAYS
        do 
        {                       
            ids = twitter.getFollowersIDs(name, cursor);            
            local = twitter.getFollowersIDs(name, cursor).getIDs();
            System.out.println("Durchgang: " + durchgang + " / " + d_anzahl );          
            System.arraycopy(local, 0, fArray, j * x , local.length);           
            j++;
            durchgang++;
    
            cursor = ids.getNextCursor();           
        } while (ids.hasNext());
    

    这将获取一个包含任何 twitter 用户的所有追随者 ID 的数组。它计算获取所有追随者 ID 所需的循环数,并将每个 5000 个 ID 的数组复制到最后包含所有 ID 的新数组中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2019-05-15
      相关资源
      最近更新 更多