我注意到instagram更改了他们的API,但我想清理我的关注者(我发现其中一些是机器人,而且看起来很糟糕)。
我想获取用户名列表,以便确定是否要阻止用户名(通常是因为API更改)。
我可以通过任何方式下载该信息吗?
我尝试了不同的网站,但是它们要么不再工作,要么要钱(可能无法工作),要么就消失了。
我还使用instaloader尝试了一些python脚本,但它们都无法恢复,因为它们可以很好地登录,但是无法向我显示任何信息。
答案 0 :(得分:0)
有一种方法可以使用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;
};
现在使用 Windows 上的F12
或 Mac 上的Cmd + Alt + j
打开浏览器的开发者控制台,然后从上方粘贴代码。
然后使用您的 user_id 和 followers_count 或上限来呼叫 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或developer console中cookie的 ds_user_id 值。
将代码粘贴到控制台中的原因是,每个请求都会自动传递域中所有可用的cookie。并非从 instagram.com 进行此操作,需要您手动提供所有cookie。
希望有帮助!
答案 1 :(得分:0)
最好使用Keygram〜https://www.thekeygram.com
之类的工具它将自动处理您要与instagram关注者一起做什么