Get JSON from website (instagram)

Question:

I recently got the idea to scrape information from instagram accounts and their posts, like the amount of comments or amount of likes. I got so far that I figured out while debugging in chrome that for example the link https://www.instagram.com/instagram/?__a under the network tab returns a JSON with the wanted information, but what is actually loaded is still the normal website html code.

json data

so far I tried in python with this code:

import urllib.request
r = urllib.request.urlopen(url)
print(r.read())

or in javascript :

window.onload = function () {
    res = fetch("https://www.instagram.com/instagram/?__a", {
        method: 'get'
    }).then(function (data) {
        return data.json();
    }).catch(function (error) {
        console.log("ERROR".concat(error.toString()));
    });
    console.log(res.user);
};

So the problem I have, is that when using these functions I only get the website code (html), is there a way to only get the JSON which is loaded in the background? I know people will recommend me using the instagram api, but I have no website nor a company to register.

Asked By: Patrick.H

||

Answers:

Trying to get the Json loaded in the background is too much work for a simple problem.

You should use the Instagram Api. Just put your name as a company.

Answered By: Yusof Bandar

I ran into a problem trying to get the API to do what I wanted, and really just needed JSON data including urls and captions for images for a specific account.

Use the following GET request:

https://www.instagram.com/account_name/?__a=1

where account_name is the profile I’m scraping.

It returns all JSON I needed for my task.

Answered By: Michael Goetti

Update 2022:
You can no longer get the JSON output by adding the query string ?__a=1.
Currently, it would help if you used the following query string to get profile information, video, and post information on Instagram:

https://www.instagram.com/instagram/?__a=1&__d=dis

enter image description here

Answered By: Javad Masoumi
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.