I use this:
import requests
class Instagram_Photos():
def __init__(self, username):
self.username = username
self.html = self.get_instagram_html(self.username)
self.fullname = self.get_user_fullname(self.html)
self.totalphotos = self.get_total_photos(self.html)
self.lastimgid = self.get_last_publication_url(self.html)
self.lastimage_url = self.get_last_thumb_url(self.html)
self.description = self.get_description_photo(self.html)
def get_user_fullname(self, html):
return html.json()["graphql"]["user"]["full_name"]
def get_total_photos(self, html):
return int(html.json()["graphql"]["user"]["edge_owner_to_timeline_media"]["count"])
def get_last_publication_url(self, html):
return html.json()["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["shortcode"]
def get_last_photo_url(self, html):
return html.json()["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["display_url"]
def get_last_thumb_url(self, html):
return html.json()["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["thumbnail_src"]
def get_description_photo(self, html):
return \
html.json()["graphql"]["user"]["edge_owner_to_timeline_media"]["edges"][0]["node"]["edge_media_to_caption"][
"edges"][0]["node"]["text"]
def get_instagram_html(self, username):
headers = {
"Host": "www.instagram.com",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11"
}
html = requests.get("https://www.instagram.com/" +
username + "/feed/", headers=headers)
return html```