Instagram API-如何检索用户在Instagram上关注的用户列表
我想知道如何检索用户在Instagram上关注的用户列表。这是因为这个特定的用户是我关注的人。因此,我可以在Instagram应用程序上访问他/她的照片和他的追随者Instagram API-如何检索用户在Instagram上关注的用户列表,instagram,instagram-api,Instagram,Instagram Api,我想知道如何检索用户在Instagram上关注的用户列表。这是因为这个特定的用户是我关注的人。因此,我可以在Instagram应用程序上访问他/她的照片和他的追随者 我如何使用Instagram API来实现这一点?这样做合法吗?您可以使用以下Instagram API端点获取用户正在跟踪的人员列表 https://api.instagram.com/v1/users/{user id}/如下?access_token=access-token 以下是该端点的完整文档。得到 下面是执行该端点的一
我如何使用Instagram API来实现这一点?这样做合法吗?您可以使用以下Instagram API端点获取用户正在跟踪的人员列表
https://api.instagram.com/v1/users/{user id}/如下?access_token=access-token
以下是该端点的完整文档。得到
下面是执行该端点的一个示例响应。
由于此端点需要用户id
(而不是用户名
),根据您编写API客户端的方式,您可能需要使用用户名调用端点,然后从响应中获取用户id,并将其传递到上面的/users/user id/follows
端点,以获取追随者列表
,但考虑到他们的API中记录了它,再看看使用条款,我不认为这样做不合法。Shiva的答案不再适用。Instagram有一段时间不支持API调用“/users/{user id}/follows”(该调用在2016年被禁用) 有一段时间,您只能通过“/users/self/follows”端点获得自己的关注者/追随者,但Instagram在2018年4月禁用了该功能(剑桥分析版)。你可以
据我所知(目前),没有一项服务(官方或非官方)可以让你获得用户(甚至是你自己)的追随者/追随者。你可以使用。Instagram已经设置了一些速率限制,因此您必须使用多个帐户或等待15分钟以进行下一次运行。Instagram的其余API已停止使用。但是您可以使用GraphQL获得所需的数据。在这里您可以找到一个概述:我最近几天一直在为chrome开发Instagram扩展,我得到了以下训练: 首先,您需要知道,如果用户配置文件是公共的,或者您已登录并且正在跟踪该用户,那么这可以工作 我不知道为什么它会这样工作,但可能在您登录时设置了一些cookie,这些cookie在获取私人配置文件时会在后端进行检查 现在我将与您分享一个ajax示例,但是如果您不使用jquery,您可以找到其他更适合您的示例 另外,您可以注意到,我们有两个查询散列值,分别用于关注者和关注者,以及其他不同的查询
let config = {
followers: {
hash: 'c76146de99bb02f6415203be841dd25a',
path: 'edge_followed_by'
},
followings: {
hash: 'd04b0a864b4b54837c0d870b0e77e076',
path: 'edge_follow'
}
};
您可以从https://www.instagram.com/user_name/?__a=1
asresponse.graphql.user.id
之后是您收到的第一部分用户的响应,因为每个请求的限制是50个用户:
let after = response.data.user[list].page_info.end_cursor
let data = {followers: [], followings: []};
function getFollows (user, list = 'followers', after = null) {
$.get(`https://www.instagram.com/graphql/query/?query_hash=${config[list].hash}&variables=${encodeURIComponent(JSON.stringify({
"id": user.id,
"include_reel": true,
"fetch_mutual": true,
"first": 50,
"after": after
}))}`, function (response) {
data[list].push(...response.data.user[config[list].path].edges);
if (response.data.user[config[list].path].page_info.has_next_page) {
setTimeout(function () {
getFollows(user, list, response.data.user[config[list].path].page_info.end_cursor);
}, 1000);
} else if (list === 'followers') {
getFollows(user, 'followings');
} else {
alert('DONE!');
console.log(followers);
console.log(followings);
}
});
}
您可能会使用这个instagram外的网站,但我没有尝试,您可能需要一些标题来匹配instagram页面上的标题
如果您需要这些头文件的一些附加数据,您可以在窗口中找到这些数据
您可以使用以下方法获取此信息:
let $script = JSON.parse(document.body.innerHTML.match(/<script type="text\/javascript">window\._sharedData = (.*)<\/script>/)[1].slice(0, -1));
let$script=JSON.parse(document.body.innerHTML.match(/window\.\u sharedData=(.*)/)[1]。切片(0,-1));
这都是我的
希望它能帮到你 这里有一种方法可以通过浏览器和一些复制粘贴(一种基于Deep Seeker答案的纯javascript解决方案)获取用户正在跟踪的人员列表:
获取用户id(在浏览器中,导航到并查找响应->图形QL->用户->id[来自深度搜索者的答案])
打开另一个浏览器窗口
打开浏览器控制台并将其粘贴到其中
选项={
userId:your_user_id,
列表:1//1表示关注者,2表示关注者
}
我根据在Instagram上获取所有followers和followers的方法制定了自己的方法。只需复制此代码,粘贴到浏览器控制台并等待几秒钟
您需要使用选项卡中的浏览器控制台使其正常工作
let username = 'USERNAME'
let followers = [], followings = []
try {
let res = await fetch(`https://www.instagram.com/${username}/?__a=1`)
res = await res.json()
let userId = res.graphql.user.id
let after = null, has_next = true
while (has_next) {
await fetch(`https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables=` + encodeURIComponent(JSON.stringify({
id: userId,
include_reel: true,
fetch_mutual: true,
first: 50,
after: after
}))).then(res => res.json()).then(res => {
has_next = res.data.user.edge_followed_by.page_info.has_next_page
after = res.data.user.edge_followed_by.page_info.end_cursor
followers = followers.concat(res.data.user.edge_followed_by.edges.map(({node}) => {
return {
username: node.username,
full_name: node.full_name
}
}))
})
}
console.log('Followers', followers)
has_next = true
after = null
while (has_next) {
await fetch(`https://www.instagram.com/graphql/query/?query_hash=d04b0a864b4b54837c0d870b0e77e076&variables=` + encodeURIComponent(JSON.stringify({
id: userId,
include_reel: true,
fetch_mutual: true,
first: 50,
after: after
}))).then(res => res.json()).then(res => {
has_next = res.data.user.edge_follow.page_info.has_next_page
after = res.data.user.edge_follow.page_info.end_cursor
followings = followings.concat(res.data.user.edge_follow.edges.map(({node}) => {
return {
username: node.username,
full_name: node.full_name
}
}))
})
}
console.log('Followings', followings)
} catch (err) {
console.log('Invalid username')
}
还有另一种方法。Instapy为我们提供了一套用于实现此目的的API
下面是一个简单的代码,可以用于此。我们需要传递所需追随者的数量,如果我们需要所有追随者列表,我们需要传递完整作为数量的参数值。包含列表的文件将存储在本地
只需编写一个简单的pip安装命令
pip install instapy
示例代码
from instapy import InstaPy
user = <Username>
password = <password>
gecko_path = <geckodriver path>
#instapy uses this internally
session = InstaPy(username=user, password=password,geckodriver_path= gecko_path)
session.login()
followers = session.grab_followers(username=user,amount=40)
print(followers)
following = session.grab_following(username=user,amount=40)
print(following)
session.end()
从instapy导入instapy
用户=
密码=
壁虎路径=
#instapy在内部使用此功能
会话=InstaPy(用户名=用户,密码=密码,geckodriver\u路径=gecko\u路径)
session.login()
followers=session.grab_followers(用户名=user,金额=40)
印刷品(追随者)
following=session.grab\u following(用户名=user,金额=40)
打印(以下)
会议结束()
链接到其文档:是,截至2016年6月1日。现在你只能获得你自己的追随者/追随者的列表。目前,follower\u list
范围在沙盒中处于状态(不再接受应用程序)。我在我自己的用户上尝试了这个范围,我可以获得我的追随者。这可能不再适用于生产环境,对吗?此api用于获取自己的追随者/以下列表:https://api.instagram.com/v1/users/self/follows?access_token=ACCESS-当时Instagram APi还没有瘫痪。2016年6月,它开始瘫痪。对于扎克伯格勋爵对API所做的事情,“阉割”是一个更好的词:)该API用于获得自己的追随者/以下列表:https://api.instagram.com/v1/users/self/follows?access_token=ACCESS-令牌
此API仍然有效吗?我无法在Instagram文档中看到它。不,这已经不可用了。Instagram在Apri开始时禁用了端点