【问题标题】:Using the Instagram API to get ALL followers使用 Instagram API 获取所有关注者
【发布时间】:2013-12-17 20:17:49
【问题描述】:

我正在使用 Instagram API 来获取关注给定帐户的人数,如下所示。

$follow_info = file_get_contents('https://api.instagram.com/v1/users/477644454/followed-by?access_token=ACESS_TOKEN&count=-1');
$follow_info = @json_decode($follow_info, true);

这将返回一组 50 个结果。他们在数组中确实有一个next_url 键,但是在处理数以万计的关注者时,继续进入下一页关注者会变得很耗时。

我在 StackOverflow 上读到,将 count 参数设置为 -1 将返回整个集合。但是,好像没有……

【问题讨论】:

    标签: api pagination instagram


    【解决方案1】:

    Instagram 限制其 API 中针对各种端点返回的结果数量,并且他们在没有警告的情况下任意更改这些限制,可能是为了处理服务器负载。

    存在几个类似的线程:

    简而言之,您将无法增加最大返回行数,并且会卡在分页中。

    【讨论】:

    • 好的。好吧,如果我将不得不使用分页链接,那么我如何通过每组 100 个关注者来获得所有关注者?
    • 非常非常慢...每次收到响应时,您都必须循环调用该 URL,直到没有更多结果。统计图就是这样做的。对于大量用户,这可能需要很长时间,您必须注意标题中的x-ratelimit
    【解决方案2】:
    $follow_info = file_get_contents('https://api.instagram.com/v1/users/USER_ID?access_token=ACCES_TOKEN');
    $follow_info = json_decode($follow_info);
    print_r($follow_info->data);
    

    还有:

    return
    {
      "meta":  {
        "code": 200
      },
      "data":  {
        "username": "i_errorw",
        "bio": "A Casa do Júlio é um espaço para quem gosta da ideia de cuidar da saúde com uma alimentação saudável e saborosa.",
        "website": "",
        "profile_picture": "",
        "full_name": "",
        "counts":  {
          "media": 5,
          "followed_by": 10,
          "follows": 120000
        },
        "id": "1066376857"
      }
    }
    

    【讨论】:

    【解决方案3】:

    如果 API 是可选的

    使用 twitter 的移动版本,您可以使用非常简单的 bash 脚本提取设计目标的完整关注者列表

    我必须仔细选择睡眠时间以避免暂时的 ip 阻塞

    脚本可以被执行:

    ./scriptname.sh targetusername
    

    内容

       #!/bin/bash
    
        counter=1 
    
        wget --load-cookies ./twitter.cookies -O - "https://mobile.twitter.com/$1/followers?" > page 
    
    
        until [ $counter = 0 ]; do
    
        cat page | grep -i "@" | grep -vi "fullname" | grep -vi "$1" | awk -F">" '{print $5}' | awk -F"<" '{print $1}' >> userlist
    
        nextpage=$(cat page | grep -i "cursor" | awk -F'"' '{print $4}')
    
        wget --load-cookies twitter.cookies -O - "https://mobile.twitter.com/$nextpage" > page
    
        if [ -z $nextpage ]; then 
    
        exit 0
    
        fi
    
        sleep 5 
    
        done
    

    它会创建一个文件“userlist”,其中包括所有符合设计目标的用户名

    PS:wget 需要一个包含您的凭据的 cookie 文件来验证请求

    【讨论】:

      【解决方案4】:

      我个人建议将 Wizboost 用于 Instagram 自动化。原因是我使用过这个工具,我的经验是惊人的。它给了我很多追随者。现在,您无需花时间与其他 Instagram 帐户竞争,因为 Wizboost 已经为您提供支持,事实上,一切都是如此。你不需要做任何你可以放松的事情,Wizboost 会给你带来追随者、喜欢和 cmets。你也可以安排你的帖子。如此易于使用,仍然有很大的潜力。我只是喜欢 Wizboost 的所有服务。

      【讨论】:

        【解决方案5】:
        $follow_info = file_get_contents('https://api.instagram.com/v1/users/USER_ID?access_token=ACCES_TOKEN');
        $follow_info = json_decode($follow_info);
        print_r($follow_info->data);
        
        return
        {
          "meta":  {
            "code": 200
          },
          "data":  {
            "username": "casadojulio",
            "bio": "A Casa do Júlio é um espaço para quem gosta da ideia de cuidar da saúde com uma alimentação saudável e saborosa.",
            "website": "",
            "profile_picture": "",
            "full_name": "",
            "counts":  {
              "media": 5,
              "followed_by": 25,
              "follows": 12
            },
            "id": "1066376857"
          }
        }
        

        【讨论】:

        • 嗨@user3337874。您可能想从帮助中心查看this guide,了解如何给出好的答案 - 我们试图在这里通过良好的解释来鼓励高质量的答案,而不仅仅是代码块。
        猜你喜欢
        • 1970-01-01
        • 2019-07-11
        • 2019-03-07
        • 1970-01-01
        • 2017-09-23
        • 2018-08-09
        • 1970-01-01
        • 2022-08-21
        相关资源
        最近更新 更多