Если честно, я не знаком с API Instagram,
Я попытался найти запрос AJAX в своей истории и выяснить, что он выглядит следующим образом:
https://www.instagram.com/graphql/query/?query_hash=<_QUERY_HASH_>&variables=%7B%22reel_ids%22%3A%5B%22<_USER_ID_>%22%5D%2C%22tag_names%22%3A%5B%5D%2C%22location_ids%22%3A%5B%5D%2C%22highlight_reel_ids%22%3A%5B%5D%2C%22precomposed_overlay%22%3Afalse%2C%22show_story_viewer_list%22%3Atrue%2C%22story_viewer_fetch_count%22%3A50%2C%22story_viewer_cursor%22%3A%22%22%7D
'переменные' - это просто кодировка URL:
{"reel_ids": ["<_ USER_ID _>"], "tag_names": [], "location_ids": [], "highlight_reel_ids": [], "precomposed_overlay": false, "show_story_viewer_list": true, "story_viewer_fetch_count": 50, "story_viewer_cursor": ""}
Обратите внимание, вам нужно заменить <_USER_ID_> вашим идентификатором пользователя, и для меня <_QUERY_HASH_> была некоторая константная строка,
Затем ответ JSON можно проанализировать с помощью небольшой программы на Python:
import json
def parse_instagram_json(json_as_str):
data = json.loads(json_as_str)
if ("data" not in data) or ("reels_media" not in data["data"]):
print "Invalid JSON"
return
for media in data["data"]["reels_media"]:
for media_item in media["items"]:
print "You have {} views".format(media_item["edge_story_media_viewers"]["count"])
viewer = []
for v in media_item["edge_story_media_viewers"]["edges"]:
viewer.append("{} ({})".format(v["node"]["username"], v["node"]["id"]))
if 0 < len(viewer):
print ", ".join(viewer)
Я не уверен, получаю ли я список зрителей или список избирателей,
Поля JSON предполагают, что это первое, но вы можете попробовать и, возможно, это будет то, что выискал ...