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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With