Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get followers and following list in Instagram via http requests

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?

like image 639
Ilya Kryukov Avatar asked Jun 06 '16 13:06

Ilya Kryukov


People also ask

How do I get a list of followers on Instagram API?

Since this endpoint required a user-id (and not user-name ), depending on how you've written your API client, you might have to make a call to the /users/search endpoint with a username, and then get the user-id from the response and pass it on to the above /users/user-id/follows endpoint to get the list of followers.

How can I get a full list of followers on Instagram?

This first option is easy: just go to your profile on Instagram – the URL www.instagram.com/yourusername – and click on the “# followers” label up a the top. This will pop up a lightbox that will show you several pieces of information.

How do you set up a follow request on Instagram?

Tap at the top to see Follow requests. Tap Confirm to approve a request. Tap Delete to deny a request. If you accidentally deny a follow request, you can ask the person to request to follow you again.


1 Answers

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 parameters query_hash and variables, where variables is a JSON-formatted set of variables id (user id, as in the return dictionary of your get_user_info() function), first (a page length, it seems the current maximum is 50) and in subsequent requests after set to the end_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.

import instaloader

# Get instance
L = instaloader.Instaloader()

# Login or load session
L.login(USER, PASSWORD)        # (login)
L.interactive_login(USER)      # (ask password on terminal)
L.load_session_from_file(USER) # (load session created w/
                               #  `instaloader -l USERNAME`)

# Obtain profile metadata
profile = instaloader.Profile.from_username(L.context, PROFILE)

# Print list of followees
for followee in profile.get_followees():
    print(followee.username)

# (likewise with profile.get_followers())

Besides username, the attributes full_name, userid, followed_by_viewer and many more are defined in the Profile instance that is returned for each followee.

like image 119
aandergr Avatar answered Sep 21 '22 02:09

aandergr