📌  相关文章
📜  github 如何访问 instagram 私人关注者 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:00:58.446000             🧑  作者: Mango

GitHub如何访问Instagram私人关注者 - Shell-Bash

有时候,我们想要访问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的文档和开发者工具。