def _graphql_request(self, query_hash, variables, settings={}): if not isinstance(query_hash, str): raise TypeError("'query_hash' must be str type") if not isinstance(variables, str): raise TypeError("'variables' must be str type") if not isinstance(settings, dict): raise TypeError("'settings' must be dict type") if not "params" in settings: settings["params"] = {"query_hash": query_hash} else: settings["params"]["query_hash"] = query_hash settings["params"]["variables"] = variables gis = "%s:%s" % (self._rhx_gis, variables) if not "headers" in settings: settings["headers"] = { "X-Instagram-GIS": hashlib.md5(gis.encode("utf-8")).hexdigest() } else: settings["headers"]["X-Instagram-GIS"] = hashlib.md5( gis.encode("utf-8")).hexdigest() settings["headers"]["X-Requested-With"] = "XMLHttpRequest" try: response = self._get_request( "https://www.instagram.com/graphql/query/", **settings) response.raise_for_status() return response except HTTPError as e: raise InternetException(e)
def _post_request(self, *args, **kwargs): try: response = self._session.post(*args, **kwargs) response.raise_for_status() return response except HTTPError as e: raise InternetException(e)
def _get_request(self, *args, **kwargs): try: print("args", args) print("kwargs", kwargs) response = self._session.get(*args, **kwargs) response.raise_for_status() return response except HTTPError as e: raise InternetException(e)