有没有办法获取 Instagram 帐户的关注者列表?

Is there a way to get the follower list of an instagram account?

我注意到 instagram 更改了他们的 API 但我想清理我的关注者(我注意到其中一些是机器人,看起来很糟糕)。

我想获取用户名列表,以便确定是否要阻止它们(手动,因为 API 更改)。

有什么方法可以下载该信息吗?

我尝试过不同的网站,但它们要么不再可用,要么要钱(而且可能不会用),要么就消失了。

我也试过一些 python 脚本和 instaloader,它们都没有检索到任何东西,因为它们登录得很好,但不能显示任何信息。

有一种方法可以使用 javascript 和 Instagram 的非官方 API。

下面是我写的两个函数:

首先是random_wait_time在请求之间等待, 第二个 get_followers 发出实际请求。

const random_wait_time = (waitTime = 300) => new Promise((resolve, reject) => {
  setTimeout(() => {
    return resolve();
  }, Math.random() * waitTime);
});


const get_followers = async(userId, userFollowerCount) => {
  let userFollowers = [],
    batchCount = 20,
    actuallyFetched = 20,
    url = `https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables={"id":"${userId}","include_reel":true,"fetch_mutual":true,"first":"${batchCount}"}`;
  while (userFollowerCount > 0) {
    const followersResponse = await fetch(url)
      .then(res => res.json())
      .then(res => {
        const nodeIds = [];
        for (const node of res.data.user.edge_followed_by.edges) {
          nodeIds.push(node.node.id);
        }
        actuallyFetched = nodeIds.length;
        return {
          edges: nodeIds,
          endCursor: res.data.user.edge_followed_by.page_info.end_cursor
        };
      }).catch(err => {
        userFollowerCount = -1;
        return {
          edges: []
        };
      });
    await random_wait_time();
    userFollowers = [...userFollowers, ...followersResponse.edges];
    userFollowerCount -= actuallyFetched;
    url = `https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables={"id":"${userId}","include_reel":true,"fetch_mutual":true,"first":${batchCount},"after":"${followersResponse.endCursor}"}`;
  }
  console.log(userFollowers);
  return userFollowers;
};

现在使用F12WindowsCmd + Alt + j[=78打开浏览器的开发者控制台=] 并粘贴上面的代码。

然后用你的 user_id[=72 继续调用 get_followers =] 或上限:

get_followers(493525227, 10)

并复制你的关注者的结果user_id

如果您想要关注者的所有数据,请更改返回的对象:

return { edges: res.data.user.edge_followed_by.edges, endCursor: res.data.user.edge_followed_by.page_info.end_cursor };

P.S 要获得 user_id,您可以使用 that service or the value of the cookie ds_user_id in the developer console.

将代码粘贴到控制台的原因是每个请求都会自动传递域上所有可用的 cookie。不从 instagram.com 这样做需要您手动提供所有 cookie。

希望对您有所帮助!

你最好使用Keygram之类的工具~https://www.thekeygram.com

它将自动处理您尝试对 Instagram 关注者执行的操作

这是一个跨平台的桌面应用程序,兼容 Mac 和 Windows