I'm looking for a possibility to get a followers and following list in JSON format via web request (in the same way as on the Instagram web site). For example, I can login via requests, and get user info:
def get_user_info(self, user_name):
url = "https://www.instagram.com/" + user_name + "/?__a=1"
try:
r = requests.get(url)
except requests.exceptions.ConnectionError:
print 'Seems like dns lookup failed..'
time.sleep(60)
return None
if r.status_code != 200:
print 'User: ' + user_name + ' status code: ' + str(r.status_code)
print r
return None
info = json.loads(r.text)
return info['user']
I tried to see what request chrome send to server, but was unsuccessful. The question is: how to prepare a similar get or post request to retrieve followers list without the Instagram API?
GraphQL queries with
query_hash
= "58712303d941c6855d4e888c5f0cd22f" (followings) and "37479f2b8209594dde7facb0d904896a" (followers) return this information. With being logged in, do a GET query to instagram.com/graphql/query with parametersquery_hash
andvariables
, wherevariables
is a JSON-formatted set of variablesid
(user id, as in the return dictionary of yourget_user_info()
function),first
(a page length, it seems the current maximum is 50) and in subsequent requestsafter
set to theend_cursor
in the previous response dictionary.Alternatively, the Instaloader library provides a convenient way to login and then programmatically access a profile's followers and followings list.
Besides
username
, the attributesfull_name
,userid
,followed_by_viewer
and many more are defined in theProfile
instance that is returned for each followee.Easy(just replace _a with __a)