📅  最后修改于: 2023-12-03 15:00:58.446000             🧑  作者: Mango
有时候,我们想要访问Instagram上某人的私人关注者列表,但Instagram并不允许我们这样做。然而,我们可以使用一些技巧来实现这一目标。
一种方法是使用Shell-Bash脚本来实现。下面是一份Shell-Bash脚本,可以帮助我们访问Instagram上某人的私人关注者列表。
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 username"
exit 1
fi
USERNAME=$1
HTML=$(curl -s "https://www.instagram.com/$USERNAME/" | grep -oP 'window\.\_sharedData = \{[^\}]+\}')
JSON=$(echo $HTML | sed 's/window\.\_sharedData = //')
PRIVATE=$(echo $JSON | jq -r .entry_data.ProfilePage[0].graphql.user.is_private)
if [ $PRIVATE != "false" ]; then
echo "User $USERNAME is private"
exit 0
fi
HAS_NEXT_PAGE=true
END_CURSOR=''
while [ $HAS_NEXT_PAGE = true ]; do
QUERY_HASH='c76146de99bb02f6415203be841dd25a'
QUERY_VARIABLES="{\"id\":\"$(echo $JSON | jq -r .entry_data.ProfilePage[0].graphql.user.id)\",\"first\":50,\"after\":\"$END_CURSOR\"}"
FOLLOWERS=$(curl -s "https://www.instagram.com/graphql/query/?query_hash=$QUERY_HASH&variables=$QUERY_VARIABLES" | jq -r '.data.user.edge_followed_by.edges[]?.node.username')
if [ -z "$FOLLOWERS" ]; then
HAS_NEXT_PAGE=false
else
for FOLLOWER in $FOLLOWERS; do
echo $FOLLOWER
done
END_CURSOR=$(curl -s "https://www.instagram.com/graphql/query/?query_hash=$QUERY_HASH&variables=$QUERY_VARIABLES" | jq -r '.data.user.edge_followed_by.page_info.end_cursor')
fi
done
该脚本需要使用 curl, jq 工具。如果你还没有安装这些工具,请先安装它们。
这个脚本使用了Instagram的GraphQL API,在代码中定义了一个QUERY_HASH变量,这个变量用于获取关注者数据。为了使用该脚本,需要提供要访问的Instagram账号的用户名,例如:
./instagram-followers.sh johnsmith
该脚本首先会检查用户名对应的Instagram账号是否为私人账号,如果是,脚本会结束执行。否则,脚本会循环调用GraphQL API,获取该账号的所有关注者。
最后,脚本会输出所有关注者的用户名。
使用该脚本需要注意的是,它只能让我们获取到非私人账号的关注者列表。如果账号是私人账号,我们将无法获取到关注者列表,无论我们使用哪种方法。
以上就是使用Shell-Bash脚本访问Instagram私人关注者的方法。如果需要更多Instagram相关技巧,可以参考Instagram的文档和开发者工具。