From 6b11722e0904d012ec3063df5bc14aab5ebd2db9 Mon Sep 17 00:00:00 2001 From: eracle Date: Sun, 31 May 2020 10:28:16 +0200 Subject: [PATCH] fixing Unable to get rhx_gis from init request (#170) --- instagram_web_api/client.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/instagram_web_api/client.py b/instagram_web_api/client.py index 0a2eaf27..faf9c2f2 100644 --- a/instagram_web_api/client.py +++ b/instagram_web_api/client.py @@ -5,19 +5,20 @@ # -*- coding: utf-8 -*- -import logging +import gzip import hashlib import json +import logging +import random import re -import gzip -from io import BytesIO +import string import time import warnings from functools import wraps -import string -import random +from io import BytesIO from socket import timeout, error as SocketError from ssl import SSLError + from .compat import ( compat_urllib_request, compat_urllib_parse, compat_urllib_parse_urlparse, compat_urllib_error, @@ -29,6 +30,7 @@ ClientConnectionError, ClientBadRequestError, ClientForbiddenError, ClientThrottledError, ) + try: # Python 3: # Not a no-op, we're adding this to the namespace so it can be imported. ConnectionError = ConnectionError # pylint: disable=redefined-builtin @@ -309,11 +311,9 @@ def _sanitise_media_id(media_id): @staticmethod def _extract_rhx_gis(html): - mobj = re.search( - r'"rhx_gis":"(?P[a-f0-9]{32})"', html, re.MULTILINE) - if mobj: - return mobj.group('rhx_gis') - return None + options = string.ascii_lowercase + string.digits + text = ''.join([random.choice(options) for _ in range(8)]) + return hashlib.md5(text.encode()) @staticmethod def _extract_csrftoken(html):