Skip to content

Instantly share code, notes, and snippets.

@antofa
Last active April 25, 2016 16:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save antofa/b2c2922c941ceb7aa9691828e0411e73 to your computer and use it in GitHub Desktop.
Save antofa/b2c2922c941ceb7aa9691828e0411e73 to your computer and use it in GitHub Desktop.
class Instagram:
accs = [
{"username": "USERNAME","password": "PASSWORD"},
]
grab = Grab()
def login(self):
"""
Авторизация
:return: Grab dump config
"""
agent = self.GenerateUserAgent()
guid = self.GenerateGuid()
device_id = 'android-' + guid
data = '{"device_id":"%s","guid":"%s","username":"%s","password":"%s","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}' % \
(device_id, guid, self.accs[0]['username'], self.accs[0]['password'])
sig = self.GenerateSignature(data)
self.grab.setup(user_agent=agent)
self.grab.setup(post=urllib.urlencode({'signed_body': sig + '.' + data, 'ig_sig_key_version': 4}),
url='https://i.instagram.com/api/v1/accounts/login/')
self.grab.request()
print self.grab.response.body
res_login = json.loads(self.grab.response.body)
if res_login['status'] == 'ok':
print "Login ok!"
return True
else:
print "Login bad"
return False
def GenerateUserAgent(self):
resolution = ['720x1280', '320x480', '480x800', '1024x768', '1280x720', '768x1024', '480x320']
vearsion = ['GT-N7000', 'SM-N9000', 'GT-I9220', 'GT-I9100']
dpip = ['120', '160', '320', '240']
ver = random.choice(vearsion)
dpi = random.choice(dpip)
res = random.choice(resolution)
return 'Instagram 4.%s.%s Android (%s/%s.%s.%s; %s; %s; samsung; %s; %s; smdkc210; en_US)' % \
(random.randint(1, 2),
random.randint(0, 2),
random.randint(10, 11),
random.randint(1, 3),
random.randint(3, 5),
random.randint(0, 5),
dpi,
res,
ver,
ver)
def GenerateSignature(self, data):
signature = hmac.new("b4a23f5e39b5929e0666ac5de94c89d1618a2916", data, hashlib.sha256).hexdigest()
return signature
def GenerateGuid(self):
return "%04x%04x-%04x-%04x-%04x-%04x%04x%04x" % (random.randint(0, 65535), random.randint(0, 65535), random.randint(0, 65535),
random.randint(16384, 20479), random.randint(32768, 49151), random.randint(0, 65535),
random.randint(0, 65535), random.randint(0, 65535))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment